12

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

错误信息:

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

我怎样才能解决这个问题?任何帮助表示赞赏。谢谢。

4

3 回答 3

7

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

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 数据上下文使用类上的属性,因此,如果您在另一个数据上下文上使用 GetTable,而不是表附加到它的数据上下文,则只会从类 def 中获取表、列等属性并将其作为其一部分使用您在查询中使用的 DC...

于 2009-10-08T16:19:30.243 回答
2

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

var query = (from a in dc1.TableA 
            join b in dc2.TableB on a.id equals b.id 
            select new { a, b }).ToList()
于 2011-01-12T08:55:57.877 回答
1

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

于 2009-10-08T13:48:24.683 回答