我有来自两个不同数据上下文的两个表。虽然两个表都来自同一个数据库,但存在两个独立的数据文件。
错误讯息:
查询包含对在不同数据上下文中定义的项的引用。
我该如何解决这个问题?任何帮助表示赞赏。感谢。
答案 0 :(得分:6)
如果您的代码执行以下操作:
from a in dc1.TableA
join b in dc2.TableB on a.id equals b.id
select new { a, b }
...只需将其更改为:
from a in dc1.TableA
join b in dc1.GetTable<TableB>() on a.id equals b.id
select new { a, b }
L2S datacontext使用类上的属性,因此如果你在另一个datacontext上使用GetTable而不是表附加到它上面,那么只需从类def中获取表,列等属性并使用它就像使用它一样它是您在查询中使用的DC的一部分......
答案 1 :(得分:6)
哦Stackoverflow你怎么提供!!
答案 2 :(得分:1)
你没有。数据上下文可能具有不一致的数据库视图。
答案 3 :(得分:1)
另一种解决方案是将结果更改为List()。
var query = (from a in dc1.TableA
join b in dc2.TableB on a.id equals b.id
select new { a, b }).ToList()
答案 4 :(得分:0)
为什么不在每个上下文中包含必要的表?