【发布时间】:2018-01-11 10:07:54
【问题描述】:
我的 SQL Server 管理工作室中有这个
SELECT DISTINCT Hours.id, Hours.hour, Shift.Date, Shift.Doctor
FROM dbo.Hours, dbo.Shift
WHERE(Shift.Date= '2017/08/04' AND Shift.Doctor= 530) AND (Hours.Id
NOT IN(SELECT Shift.Hour
FROM dbo.Shift) )
这正是我想要的。
但是当我尝试使用 LINQ 时:
日期是 2017/08/04 id 是 530
var hoursFree = (from s in db.Shift
from h in db.Hours
where ((s.Date == date && s.Doctor == id) && !(from s in db.Shift select t.Hours).Contains(h.Id))
select h).ToList().Distinct();
LINQ 不应该给我带来完全相同的东西吗?
【问题讨论】:
-
这取决于
date和id是什么。此外,not in子句也不一样。 -
对此不确定,但您在
LINQ中有两次from s in db.Shift。!(from s in db.Shift会是过滤后的数据吗? -
只有这些列吗? ID、时间、日期和医生?如果不是,那么您也会在其他字段上调用 distinct。
-
请描述到底是哪里出了问题。
-
显示两个数据集的结果会有所帮助。
标签: c# asp.net sql-server entity-framework linq