无法加入来自不同上下文的实体

时间:2013-08-09 12:52:21

标签: linq entity-framework

我有两个连接到两个不同数据库的上下文类,所以我试图在这些实体之间进行连接,但是当我写道:

RackJoinList rjlist = new RackJoinList();
var racks =  from rack in tms.TMSRacks
             .Where(a=>a.Technology.Tag.ToUpper().StartsWith(q.ToUpper()) || (q ==null))
             select rack;

rjlist.Racks = racks.ToList();

var resources = from resource in entities.Resources join c in rjlist.Racks.AsQueryable()
on resource.RESOURCEID == 

我无法加入资源和rjlist.Rack,有人可以建议吗?

2 个答案:

答案 0 :(得分:1)

尝试使用on resource.RESOURCEID equals而不是==

答案 1 :(得分:1)

如错误所示,您无法跨两个数据库实例加入。您可以在一个数据库中添加链接表,然后加入它。或者,如果您知道查询一侧的记录数量相对较少(2000年以下),您可以从第一个表中获取ID,然后使用.Contains方法生成IN子句而不是使用连接。否则,您将无法将两个表中的所有记录加载到内存中,然后使用LINQ to Objects连接它们(这可能是性能瓶颈)。