使用实体拆分时,左连接而不是内连接

时间:2011-06-13 03:17:13

标签: c# .net entity-framework

作为this问题的补充,我接受了Ladislav Mrnka's answer

问题是Table1的某些条目没有显示出来。所以我使用了sql server profiler,看到执行的查询使用INNER JOIN我需要做的LEFT JOIN

在表1中,我有表2中没有匹配的数据,这些数据必须出现。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

密钥是DefaultIfEmpty()

var query =
from t1 in Table1
join t2 in Table2
on t1 equals t2 into NewTable
from result in NewTable.DefaultIfEmpty()
select (Your select)

答案 1 :(得分:1)

在这种情况下,您不能使用前一个问题中提到的实体拆分。实体拆分要求映射实体的两个部分都存在,因此它使用内连接。修改数据库以使每个实体具有两个部分或删除实体拆分,并直接使用Table1Table2来控制已创建的查询。