C# Linq或EF中的外部联接

C# Linq或EF中的外部联接,c#,linq,entity-framework,C#,Linq,Entity Framework,我有两张桌子 T1 T2 ------------- id1 id2 ----------- 1 3 2 5 3 4 我想得到一个外连接,这样我得到1,2,3,4,5 我正在使用以下Linq命令 var newList = (from i in T1 join d in T2 on i.id1 equals d.id2 into output

我有两张桌子

T1     T2
-------------
id1    id2
-----------
1      3
2      5
3
4
我想得到一个外连接,这样我得到1,2,3,4,5

我正在使用以下Linq命令

   var newList = (from i in T1
                   join d in T2
                   on i.id1 equals d.id2 into output
                   from j in output.DefaultIfEmpty()
                   select new {i.id}); 
我得到的结果是1,2,3,4少了5个。我怎样才能让它给我新列表1,2,3,4,5
请帮助

在LINQ中,除了外部连接之外,没有直接的替代方法。你必须这样解决它:

在查询中,由于i.id1上的
等于d.id2
,您只编写了
i
,该
也存在于
T2

var result = T1.Select(item => item.id1).Union(T2.Select(item => item.id2));

您可以使用Union,如:

var结果=T1.联合(T2)


你可以参考这个

可能的重复,我已经看过了,每个表上有2列无法解决