需要使用 LINQ 进行与内联接相反的查询的帮助

发布于 2024-07-14 22:03:51 字数 184 浏览 4 评论 0原文

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

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

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

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

谢谢!

I have two tables in an XML Dataset. T1, T2. Each of the tables has a ID column.

T1 has a list of Customers
T2 has a list of Orders

I want to build a LINQ query that returns only the ID of the customers that do not have orders. In other words customer ID's that do not exist in the T2 table.

Oh yea, I'm using C#

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浅忆 2024-07-21 22:03:51

这需要外连接和空值检查。

var result = from c in Customers
             join d in Details on d.CustomerID equals c.ID into g
             where !g.Any()
             select c;

This requires an outer join and a check on null.

var result = from c in Customers
             join d in Details on d.CustomerID equals c.ID into g
             where !g.Any()
             select c;
断念 2024-07-21 22:03:51

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

var query = from c in T1
            where !(from o in T2 select o.CustomerID)
            .Contains(c.CustomerID)
            select c;

I think this will work (please adapt to your DataSets):

var query = from c in T1
            where !(from o in T2 select o.CustomerID)
            .Contains(c.CustomerID)
            select c;
掩于岁月 2024-07-21 22:03:51

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

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

You just need to us a where clause and all:

T1.Where( item1 => T2.All( item2 => item1.ID != item2.ID ) );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文