0
這是場景。 我有兩個表,1對M關係;如何在LEFT JOIN中的實體框架6中生成IS NULL和IS NOT NULL
爲了便於說明讓它們定義爲
MyHeaderTable(headerID,COL1,COL2)
MyDetailTable(lineID,headerID,statusID,COL3,COL4)
注子行是可選的(頭記錄可能存在沒有相應的線,因此,LEFT JOIN
我對下面的結果集,使用T-SQL:
SELECT MyHeaderTable h
LEFT JOIN MyDetailTable c ON h.headerID = c.headerID
WHERE c.lineID IS NULL -- no corresponding children
OR (c.lineID is NOT NULL AND c.statusID != 2) -- children rows must have status NOT 2
問題是我如何在EF6 linq中編寫上述T-SQL?
我嘗試下面的顯示,但我無法生成LINQ查詢與IS NULL和IS NOT NULL:
var query = from h in ctx.MyHeaderTable
join c in ctx.MyDetailTable on h.headerID equals c.headerID into joinedTbl
from j in joinedTbl.DefaultIfEmpty() //LEFT JOIN
where j.lineID is null
|| (j.lineID != null && j.statusID !=2)
select;
var results = query.ToList();
*注EF6的特定版本,我知道EF已經演變以及在什麼不感興趣早期的版本。
這是 「荒謬」!所以在實體級別檢查爲空而不是特定的字段。偉大的作品,答案被接受。 – joedotnot