实体框架是否有办法用“BETWEEN”进行“INNER JOIN”?
我有一个表格,其中列出了每个月第一天的日期,我希望关联本月的所有记录,以便按月分组。
无论如何,我想要重现的是:
SELECT a.*
FROM Assignments as a
INNER JOIN monthList as m ON ( m.Date BETWEEN a.StartDate AND a.EndDate)
这是我尝试但不起作用的......
var query = (from a in Context.Assignments
join m in monthList on (m >= a.StartDate && m <= a.EndDate);
另外需要注意的是montList
不属于我的背景。
答案 0 :(得分:4)
看看这个答案:LINQ Join On Between Clause
在LINQ to Entities查询中,连续两个from
在SQL语句中也生成INNER JOIN
。
在您的情况下,您将拥有以下内容。
var query = from a in Context.Assignments
from m in monthList
where m >= a.StartDate && m <= a.EndDate
select new { a.SomeProperty, a.AnotherProperty };
在您的情况下,由于monthList
不属于您的DbContext
对象,因此将首先查询Context.Assignments
以将其拉入本地内存,然后此结果将 inner与monthList
一起以生成query
个对象。