SQLから来るLinqは比較的新しいです。だから、私は左を把握しようとしていることは、次のために参加する: Linq左寄せ右がヌル
SELECT * from MASTER m
LEFT JOIN CHILD C
ON m.ID=C.MASTER_ID
WHERE C.MASTER_ID is null
だから、通常これは、子供を持っていないマスターからのすべてのレコードを返します。 .DefualtIfEmpty()が見つかりましたが、子を持つマスターレコードは削除されません。
私はの線に沿って開始しました:
var recs=from m in MASTER
from c in child
.where (mapping=>mapping.MasterId == m.Id)
.DefaultIfEmpty()
select new { MasterId = m.Id};
しかし、それは私の知る限りだと捕まってしまったようです。 .DefaultIfEmpty()は私が探しているものではないと仮定しています。 注:マスター表には数百万行もあります。子供たちは同じ数に近いです。理想的には、生成されたSQLは私が投稿したSQLのように見えるでしょう。
ありがとうございます。
msdnのWebサイトを参照してください。https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng