Hem*_*eus 2 c# linq entity-framework
实体框架有没有办法用“BETWEEN”进行“INNER JOIN”?
我有一个表格,其中列出了每月第一天的日期,我想关联该月的所有记录,以便我可以按月份分组。
无论如何,我想要重现的是这样的:
SELECT a.*
FROM Assignments as a
INNER JOIN monthList as m ON ( m.Date BETWEEN a.StartDate AND a.EndDate)
Run Code Online (Sandbox Code Playgroud)
这是我尝试过但不起作用的...
var query = (from a in Context.Assignments
join m in monthList on (m >= a.StartDate && m <= a.EndDate);
Run Code Online (Sandbox Code Playgroud)
另一件需要注意的事情是,这montList不是我的背景的一部分。
看这个答案:LINQ Join On Between Clause
在 LINQ to Entities 查询中,from连续两个查询也会INNER JOIN在 SQL 语句中生成。
在你的情况下,你会有以下内容。
var query = from a in Context.Assignments
from m in monthList
where m >= a.StartDate && m <= a.EndDate
select new { a.SomeProperty, a.AnotherProperty };
Run Code Online (Sandbox Code Playgroud)
在您的情况下,由于monthList不是DbContext对象的一部分,Context.Assignments因此将首先查询将其拉入本地内存,然后该结果将进行内部连接以monthList生成query对象。
| 归档时间: |
|
| 查看次数: |
10015 次 |
| 最近记录: |