如何使用LINQ实现左排除JOIN?

Fre*_*Boy 20 c# linq linq-to-sql

如何使用LINQ实现左排除JOIN?

SQL中:

SELECT <select_list> 
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL
Run Code Online (Sandbox Code Playgroud)

dah*_*byk 23

你需要DefaultIfEmpty()LEFT JOIN,那么你可以检查是否加盟值是null:

var result = from a in Table_A
             join b in Table_B on a.Key equals b.Key into j
             from b in j.DefaultIfEmpty()
             where b == null
             select new { ... };
Run Code Online (Sandbox Code Playgroud)


Mag*_*nus 12

更容易写这样:

var result = from a in Table_A
             where !Table_B.Any(b => b.Key == a.key)
             select new { ... };
Run Code Online (Sandbox Code Playgroud)