【发布时间】:2015-02-15 14:49:57
【问题描述】:
这是我需要转换为 Linq 的工作 sql:
select * from dbo.Pod p
left join dbo.PodEvent pe on p.PodId = pe.Pod_PodId
left join dbo.Event e on pe.Event_EventId = e.EventId
where e.StartDateTime >= '2014-12-24 09:00:00.000'
and e.EndDateTime <= '2014-12-24 14:30:00.000'
我整天都在尝试来自不同帖子的建议,这是我能做的最好的事情,问题是它是一个内部连接,我需要它是一个左连接,这样我就可以在给定的时间内获取所有的豆荚间隔:
List<Pod> pods =
(from p in db.Pods
join pe in db.PodEvents on p.PodId equals pe.Pod.PodId
join e in db.Events on pe.Event.EventId equals e.EventId
where
e.StartDateTime == userInfo.StartDateTime
&&
e.EndDateTime <= userInfo.EndDateTime
select p).ToList();
谢谢
【问题讨论】:
-
尝试调查
GroupJoin。 -
感谢您的建议,我已经尝试了一些示例,但是在将结果转换为列表时遇到了问题...您知道任何材料吗?
-
LinqPad 也是与 Linq 相互转换的好工具。
-
使用 sqltolinq.com/downloads 将您的 sql 查询转换为 LINQ
标签: sql linq entity-framework left-join where-clause