在使用 LINQ 的对面到内部联接查询方面需要帮助
Posted
技术标签:
【中文标题】在使用 LINQ 的对面到内部联接查询方面需要帮助【英文标题】:Need help with an Opposite to Inner join Query using LINQ 【发布时间】:2010-10-12 03:51:23 【问题描述】:我在一个 XML 数据集中有两个表。 T1,T2。每个表都有一个 ID 列。
T1 有一个客户列表 T2 有一个订单列表
我想构建一个 LINQ 查询,它只返回没有订单的客户的 ID。换句话说,T2 表中不存在的客户 ID。
哦,是的,我正在使用 C#
谢谢!
【问题讨论】:
【参考方案1】:这需要一个外连接和一个空检查。
var result = from c in Customers
join d in Details on d.CustomerID equals c.ID into g
where !g.Any()
select c;
【讨论】:
【参考方案2】:我认为这会起作用(请适应您的数据集):
var query = from c in T1
where !(from o in T2 select o.CustomerID)
.Contains(c.CustomerID)
select c;
【讨论】:
哇——太简单了!感谢您的帮助【参考方案3】:您只需要给我们一个 where 子句即可:
T1.Where( item1 => T2.All( item2 => item1.ID != item2.ID ) );
【讨论】:
以上是关于在使用 LINQ 的对面到内部联接查询方面需要帮助的主要内容,如果未能解决你的问题,请参考以下文章