【发布时间】:2011-10-24 20:15:18
【问题描述】:
我有这个问题:
var list = (from t1 in context1.SomeTable
join t2 in context2.SomeTable on t1.ID equals t2.ID
where //some where clause
select new { t1.SomeField, t2.SomeField }).ToList());
当这个查询尝试执行时我会得到这个错误:
指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。
- 为什么
LINQ to Entities不允许这样做? -
LINQ to Entities还可以通过其他方式实现吗? - 有什么办法可以解决这个问题?
【问题讨论】:
-
您能用伪代码解释一下您希望如何执行查询吗?服务器上应该发生什么以及代码中本地应该发生什么?
-
在我的例子中,我刚刚拆分了我的数据库中的表、SystemContext 中的系统表和 Applicationcontext 中的其余表。所以它仍然在同一个服务器上,同一个连接,只是 2 个不同的实体模型。
-
所以你把它们放在两个不同的上下文中,但是你假设系统应该意识到上下文是相同的?您是否希望整个查询在服务器端运行?如果是这样,我假设您应该将所有查询相关表包含在同一上下文中。
标签: c# linq entity-framework-4 linq-to-entities