【发布时间】:2020-01-07 17:25:10
【问题描述】:
我们有两个对象,Dates 和 ActiveEvents。想要在 linq 中以小于或等于条件对这些执行内部连接。与以下 SQL 的 ref 相同,其中考虑 #Tables 是 C# 对象
Select A. from #Activities A
Inner Join #Dates D ON A.ActivityDate <= D.ProcessDate
在下面尝试过,但没有给出正确的结果。
var filteredActivity = (from e in ActiveEvents
from p in dates
where e.ActivityDate <= p.Date
select new ActiveEvent
{
ActivityDate = p.Date,
EventId = e.EventId
}).ToList();
和
var filteredActivity = (from e in ActiveEvents
from p in dates.Where(r => e.ActivityDate <= r)
select new ActiveEvent
{
ActivityDate = p.Date,
EventId = e.EventId
}).ToList();
您能建议任何更好的方法吗?
【问题讨论】:
-
连接在哪里?
-
你的 SQL 应该等同于
Select * From Activities A, Dates D Where A.ActivityDate <= D.ProcessDate,所以第一个 Linq 查询应该做你想做的事。它究竟是如何给出错误的结果。
标签: c# linq linq-to-sql