Как достичь Left Исключая JOIN с помощью LINQ? Как достичь Left Исключая JOIN с помощью LINQ? В SQL: SELECT <select_list> FROM Table_A A LEFT JOIN Table_B B ON A.Key = B.Key WHERE B.Key IS NULL Ответ 1 Для LEFT JOIN вам понадобится DefaultIfEmpty(), тогда вы можете проверить, есть ли объединенное значение 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 { ... }; Ответ 2 Легче было бы написать вот так: var result = from a in Table_A where !Table_B.Any(b => b.Key == a.key) select new { ... }; Ответ 3 Еще более быстрый способ var result = from a in Table_A where !Table_B.Select(b => b.Key).Contains(a.Key) select new { ... };
Ответ 1 Для LEFT JOIN вам понадобится DefaultIfEmpty(), тогда вы можете проверить, есть ли объединенное значение 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 { ... };
Ответ 2 Легче было бы написать вот так: var result = from a in Table_A where !Table_B.Any(b => b.Key == a.key) select new { ... };
Ответ 3 Еще более быстрый способ var result = from a in Table_A where !Table_B.Select(b => b.Key).Contains(a.Key) select new { ... };