Linq或EF中的外部连接

本文关键字:外部 连接 EF Linq | 更新日期: 2023-09-27 18:15:44

我有两个表

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}); 

我得到I 1 2 3 4少了5。我怎么让它给我newList 1 2 3 4 5

Linq或EF中的外部连接

在LINQ中没有OUTER JOIN的直接替代方案。你必须像这样解决它:

在查询中,您只写了i,因为on i.id1 equals d.id2也存在于T2中。

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

您可以使用Union:

var result = T1.Union(T2);

你可以参考这个c# linq union问题