如何将不同数据上下文的表进行内部连接?[重复]

问题描述 投票:8回答:3

我有两个表,来自两个不同的数据上下文。 虽然两张表来自同一个数据库,但存在两个不同的数据上下文。

错误信息。

该查询包含对不同数据上下文上定义的项目的引用。

我怎样才能解决这个问题? 感谢任何帮助。 谢谢。

c# .net linq linq-to-sql inner-join
3个回答
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数据上下文使用的是类的属性 所以如果你在另一个数据上下文上使用GetTable 而不是表所在的数据上下文 它就会从类的def中获取表,列等属性 然后把它当作你在查询中使用的DC的一部分来使用...


1
投票

你不这样做。 数据上下文可能对数据库的视图不一致。


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()
© www.soinside.com 2019 - 2024. All rights reserved.