7

我在 XML 数据集中有两个表。T1,T2。每个表都有一个 ID 列。

T1 有一个客户列表 T2 有一个订单列表

我想构建一个 LINQ 查询,它只返回没有订单的客户的 ID。换句话说,T2 表中不存在的客户 ID。

哦,是的,我正在使用 C#

谢谢!

4

3 回答 3

9

这需要外部连接和对 null 的检查。

var result = from c in Customers
             join d in Details on d.CustomerID equals c.ID into g
             where !g.Any()
             select c;
于 2009-03-09T11:22:30.273 回答
6

我认为这会起作用(请适应您的数据集):

var query = from c in T1
            where !(from o in T2 select o.CustomerID)
            .Contains(c.CustomerID)
            select c;
于 2009-03-09T10:41:24.773 回答
2

您只需要给我们一个 where 子句和所有内容:

T1.Where( item1 => T2.All( item2 => item1.ID != item2.ID ) );
于 2009-03-09T10:40:50.717 回答