【问题标题】:Need help with an Opposite to Inner join Query using LINQ在使用 LINQ 的对面到内部联接查询方面需要帮助
【发布时间】:2010-10-12 03:51:23
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: c# linq-to-xml outer-join


    【解决方案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 ) );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-26
        相关资源
        最近更新 更多