gpt4 book ai didi

c# - 使用不等式的 Linq 外连接?

转载 作者:太空狗 更新时间:2023-10-30 00:56:56 25 4
gpt4 key购买 nike

在 SQL 中我会说:

select a.*
from TableA a
left join TableB b on a.Type = b.Type and a.SomeDate < b.AnotherDate
where b.ID is null

这将选择表 A 中的所有记录,而表 B 中不存在相同类型和更晚日期的记录。

在 Linq 中,你是怎么做到的?

from a in TableA
join b in TableB on a.Type equals b.Type into j // what about the comparator?
from x in j.DefaultIfEmpty()
where x == null
select a;

谢谢!

编辑:

已经提出了一些很好的答案,所有这些都解决了这个问题中表达的特定需求,但它们基本上都是解决方法。它们都以一种或另一种方式转换为嵌套的“存在”查询,而问题中的 SQL 是一个没有任何嵌套的简洁查询。这里给出的案例只是一般原则的一个例子;我真正希望看到的是一个 Linq 表达式,它将(大致)转换为上述 SQL 查询的语法。

最佳答案

这样的事情应该有所帮助:

var results = 
(from itemA in TableA
from itemB in TableB
where itemA.Type != itemB.Type && itemA.Date < itemB.Date
select itemA).Distinct();

关于c# - 使用不等式的 Linq 外连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com