2013-05-29 48 views
0

我有兩個表外部聯接的LINQ或EF

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.我怎樣才能得到它給我newList 1,2,3,4,5 幫助請

+0

的http://stackoverflow.com/questions/5489987/linq-full-outer-join?rq=1 –

+0

我已經看着它可能重複它有2列每張桌子都解決不了 –

回答

2

LINQ中沒有直接替代OUTER JOIN。你必須這樣解決:

在查詢範圍內,您只寫了i,因爲on i.id1 equals d.id2也存在於T2中。

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