【发布时间】:2015-05-14 11:16:10
【问题描述】:
我遇到这样的错误:指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。
var employee = new ApplicationDbContext().Employee;
var otherTable = new OtherDbContext().OtherTable;
var returnValue = (from e in employee
join o in otherTable on e.Id equals o.Id
select new
{
e.Name,
e.Address,
o.Others
});
有任何解决方案吗? 谢谢!
【问题讨论】:
-
我不确定您是否可以跨两个上下文加入。 EF 必须以某种方式将其转换为 SQL 查询
-
无法同时查询两种上下文,请参阅此问题/答案:stackoverflow.com/questions/4278993/…
-
Employee或OtherTable的数据多吗?
-
cmets 是正确的。请注意,连接方法的内部类型无论如何都是 IEnumerable,因此只需将第二个上下文(内部)的实体加载到 IEnumerable
变量中。 msdn.microsoft.com/en-us/library/vstudio/… -
不知何故,很快就会有很多数据。所以我认为如果我查询第二个上下文中的所有记录(比如.ToList()),性能会受到影响。谢谢!
标签: c# linq entity-framework lambda