Подтвердить что ты не робот

Как достичь 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
4b9b3361

Ответ 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 { ... };