Нужна помощь с противоположным внутреннему запросу соединения с помощью LINQ - PullRequest
7 голосов
/ 09 марта 2009

У меня есть две таблицы в наборе данных XML. Т1, Т2. Каждая из таблиц имеет столбец идентификаторов.

T1 имеет список клиентов У Т2 есть список заказов

Я хочу создать запрос LINQ, который возвращает только идентификатор клиентов, у которых нет заказов. Другими словами, идентификаторы клиентов, которых нет в таблице T2.

О да, я использую C #

Спасибо!

Ответы [ 3 ]

9 голосов
/ 09 марта 2009

Для этого требуется внешнее соединение и проверка на ноль.

var result = from c in Customers
             join d in Details on d.CustomerID equals c.ID into g
             where !g.Any()
             select c;
6 голосов
/ 09 марта 2009

Я думаю, что это сработает (пожалуйста, адаптируйтесь к вашим DataSets):

var query = from c in T1
            where !(from o in T2 select o.CustomerID)
            .Contains(c.CustomerID)
            select c;
1 голос
/ 09 марта 2009

Вам просто нужно к нам предложение where и все:

T1.Where( item1 => T2.All( item2 => item1.ID != item2.ID ) );
...