我正在尝试使用来自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;
这是正确的方法吗?
答案 0 :(得分:0)
您一次只能在一个数据库上编写Linq到SQL查询。
如果要将数据连接在一起,则必须分别编写两个查询,从中创建匿名类型对象,然后使用普通的旧Linq对象将它们连接在一起。