【发布时间】:2014-04-22 08:11:56
【问题描述】:
我正在尝试使用来自 2 个不同 SQL Server(实体)的 LINQ 连接 3 个表。
Error: The specified Linq expression contains references to queries that are associated with different contexts
var query = from a in EntityA.TableA
join p in EntityA.TableB
on a.PersonID equals p.PersonID
join m in EntityB.TableC
on Convert.ToInt32(a.SourceID) equals m.ID
where p.someID == "100000527"
select m.ID;
请帮我解决这个问题。
答案:
var query = from a in EntityA.TableA
join p in EntityA.TableB
on a.PersonID equals p.PersonID
where p.someID == "100000527"
select a.ID;
IQueryable<int> ID = null;
foreach (var item in query)
{
int sourceID= Convert.ToInt32(item);
ID = (from m in EntityB.TableC
where m.ID == sourceID
select m.ID).Distinct();
}
return ID;
这是正确的方法吗?
【问题讨论】:
-
我看过那个链接。但我想我的情况有点不同,因为我根本没有得到 System.NotSupportedException。我以为我的和stackoverflow.com/questions/7332920/… 一样
-
另外,Convert.ToInt32(a.SourceID) 无论如何也不起作用
-
谢谢。我现在修改了。