我需要将此SQL查询转换为LINQ
SELECT *
FROM Table1 t1
JOIN Table2 t2 ON t1.LogDate >= t2.StartDate AND t1.LogDate <= t2.EndDate
上述SQL查询的LINQ应该是什么?
答案 0 :(得分:3)
LINQ仅支持连接相等的键,我建议使用交叉连接。根据您的查询优化器,它可能会转换为内部联接
from t1 in Table1
from t2 in Table2
where t1.LogDate >= t2.StartDate && t1.LogDate <= t2.EndDate
select new { t1, t2 }
答案 1 :(得分:1)
希望如果您要加入这些表,那么您可以考虑使用Table2到Table1中的外键引用为您设计数据库。假设你这样做,Lambda表达式如下:
表1表2
PK-&GT; ID FK-&gt; T1_ID
db.Table1.Join(db.Table2.ToList(),
t1 => t1.ID,
t2 => t2.T1_ID,
(t1, t2) => new { Table1, Table2})
.Where(result => result.Table1.LogDate >= result.Table2.StartDate &&
result.Table1.LogDate <= result.Table2.EndDate);