【发布时间】:2016-09-01 14:57:08
【问题描述】:
我有一张像下面这样的表格
SL Classroom Weekday StartTime EndTime
-- --------- ------- --------- --------
1 ADMN-100 Friday 01:00:00 02:00:00
2 ADMN-100 Friday 02:00:00 03:00:00
3 ADMN-100 Monday 01:00:00 02:00:00
4 LAB-501 Monday 01:00:00 02:00:00
使用 LINQ,我如何检查是否发生时间重叠?
我在下面做的失败,
bool check = true;
check = db.Classrooms.Any(x => x.Classroom.Equals(roomNo)
&& x.Weekday.Equals(weekDay)
&& x.StartTime < startsAt
&& x.EndTime > startsAt);
【问题讨论】:
-
您在这里有点遗漏了一些细节,但是您的标志翻转了吗?你不应该检查开始时间是否比startsAt早早?
-
我觉得应该是
startsAt > x.StartTime && x.EndTime > startsAt -
StartTime/EndTime 是字符串对象还是其他一些对象类型?如果它们是 DateTime 对象,它们的年/月/日组成部分是什么?
-
检查重叠的方法是
start1 < end2 && start2 < end1 -
Casey、Arturo Menchaca 和 juharr,你们是对的。更改了问题以及我的代码。但还没有解决。
标签: c# sql asp.net-mvc entity-framework linq