C# 使用实体拆分时使用左连接而不是内部连接

C# 使用实体拆分时使用左连接而不是内部连接,c#,.net,entity-framework,C#,.net,Entity Framework,除此之外,我还回答了一个问题 问题是表1中的一些条目没有显示出来。因此,我使用了sql server探查器,并看到执行的查询使用了内部联接,我需要在其中执行左联接 在表1中,我有表2中没有匹配的数据,并且这些数据必须出现 如何解决此问题?密钥是DefaultIfEmpty() 在这种情况下,您不能使用前一个问题中提出的实体拆分。实体拆分要求映射实体的两个部分都存在,因此它使用内部联接。要么修改数据库,使每个实体都有两个部分,要么删除实体拆分,直接使用Table1和Table2来控制已创建的查询。

除此之外,我还回答了一个问题

问题是表1中的一些条目没有显示出来。因此,我使用了sql server探查器,并看到执行的查询使用了
内部联接
,我需要在其中执行
左联接

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

如何解决此问题?

密钥是DefaultIfEmpty()


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

为了让OP省点麻烦,我已经告诉过他
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)