【发布时间】:2011-06-13 03:17:12
【问题描述】:
作为this问题的补充,我拿了Ladislav Mrnka's answer。
问题是 Table1 的某些条目没有显示出来。所以我使用了sql server profiler,看到执行的查询使用了INNER JOIN,我需要做LEFT JOIN。
在表 1 中,我有在表 2 中不匹配的数据,并且该数据必须出现。
我该如何解决这个问题?
【问题讨论】:
标签: c# .net entity-framework
作为this问题的补充,我拿了Ladislav Mrnka's answer。
问题是 Table1 的某些条目没有显示出来。所以我使用了sql server profiler,看到执行的查询使用了INNER JOIN,我需要做LEFT JOIN。
在表 1 中,我有在表 2 中不匹配的数据,并且该数据必须出现。
我该如何解决这个问题?
【问题讨论】:
标签: c# .net entity-framework
关键是 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)
【讨论】:
DefaultIfEmpty() 这不是他想要的,所以我删除了我的答案。
在这种情况下,您不能使用前一个问题中提出的实体拆分。实体拆分要求映射实体的两个部分都存在,因此它使用内部连接。修改您的数据库以使每个实体都有这两个部分,或者删除实体拆分并直接使用 Table1 和 Table2 来控制创建的查询。
【讨论】: