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

时间:2011-08-01 15:16:13

标签: linq

我在联合之后有来自相同数据库的2个变量:

var projectedP1 = P1.Select(x => new Project_test { 
                                     ID_inString = x.ID.ToString(), 
                                     col1 = x.col1, 
                                     col2 = x.col2, 
                                     col3 = x.col3 });
var union = projectedP1.Union(P2);

当P1单独或P2单独使用时,一切都很好 但是当2是联合时,我会在运行时得到它:

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

我试过这个类似的帖子,但是不明白。有人知道吗?

The specified LINQ expression contains references to queries that are associated with different contexts

1 个答案:

答案 0 :(得分:10)

您永远不能从两个不同的上下文中加入对象;因为union被编译成数据库查询,所以它不知道如何执行它,因为不支持多个DB。您可以做的最好的事情是分别在每个查询上调用ToList(),这将执行数据库查询,并执行LINQ到对象的并集。这完全是一个迭代过程。