代码之家  ›  专栏  ›  技术社区  ›  jinsungy

如何从不同的数据上下文内部联接表?[复制品]

  •  8
  • jinsungy  · 技术社区  · 15 年前

    这个问题已经有了答案:

    我有两个来自两个不同数据上下文的表。尽管两个表都来自同一个数据库,但存在两个单独的数据上下文。

    错误信息:

    查询包含对在不同数据上下文中定义的项的引用。

    我怎么能避开这个?感谢您的帮助。谢谢。

    5 回复  |  直到 10 年前
        1
  •  5
  •   Community Jaime Torres    7 年前

    哦,StackOverflow,你怎么提供的!!

    Simulating Cross Context Joins--LINQ/C#

        2
  •  6
  •   KristoferA    15 年前

    如果您的代码执行以下操作:

    from a in dc1.TableA
    join b in dc2.TableB on a.id equals b.id
    select new { a, b }
    

    …只需将其更改为:

    from a in dc1.TableA
    join b in dc1.GetTable<TableB>() on a.id equals b.id
    select new { a, b }
    

    L2S DataContext使用类上的属性,因此,如果在表附加到它的另一个DataContext上使用gettable,则只需从类def中提取表、列等属性,并将其用作查询中使用的DC的一部分…

        3
  •  1
  •   Greg D    15 年前

    您没有。数据上下文可能有不一致的数据库视图。

        4
  •  1
  •   Cyberpks    10 年前

    另一个解决方案是将结果更改为list()。

    var query = (from a in dc1.TableA 
                join b in dc2.TableB on a.id equals b.id 
                select new { a, b }).ToList()
    
        5
  •  0
  •   Per Erik Stendahl    15 年前

    为什么不在每个上下文中包含必要的表呢?