2016-12-04 69 views
0

所以我相信我已經發現,group joinleft outer join,這就是我所需要的。但我需要檢查連接的表屬性是否爲null。但我還沒有工作。林格集團加入,並在加入表的屬性聲明

所以基本上,我需要這個查詢的Linq中的實體框架相當於

SELECT 
    id, test, test2 
FROM Table1 
LEFT OUTER JOIN Table2 ON 
    table1.id = table2.id 
WHERE table2.example = NULL; 

我試圖與拉姆達但沒有任何成功還沒有做到這一點。我似乎無法得到where語句的table2屬性示例的保留。

+1

你能後,你已經tryed代碼? – C1sc0

+0

[Linq to Sql:多個左外連接]的可能重複(http://stackoverflow.com/questions/267488/linq-to-sql-multiple-left-outer-joins) –

回答

0

你可能想看看:http://www.sqltolinq.com/

Linqer是一個SQL到LINQ轉換工具。它可以幫助您學習LINQ並轉換您現有的SQL語句。

並非每個SQL語句都可以轉換爲LINQ,但Linqer涵蓋了許多不同類型的SQL表達式。

讓我們假設你在EF dbcontext中有Table1和Table2。

from Table1 in context 
from Table2 in context 
    .Where(t2=> t2.ID == Table1.ID && t2.example == null).DefaultIfEmpty() 
select new 
{ 
    id= Table1.ID 
    ,test = Table1.Test 
    ,test2 = Table2.Test 
} 
1

您可以流動使用LINQ擴展方法(羣組加入)這個例子:

Table1.GroupJoin(Table2, 
        x => x.ID, 
        y => y.ID, 
        (tbl1, tbl2) => new {Table1=tbl1, Table2 =tbl2.DefaultIfEmpty()}) 
        .SelectMany(
        tbl => tbl.Table2.Where(t2 => t2.example == null).Select(x => new 
        { 
         id= tbl.Table1.ID, 
         test = tbl.Table1.Test, 
         test2 = tbl.Table2.Test 
        }))ToList();