我的应用程序有一个内置的日历系统,它们的数据库模式如下所示:
CalendarItem( CalendarItemId bigint, Start datetime, Length int, Blargh nvarchar(MAX) )
Start
是事件开始时的 UTC 日期时间值,是事件Length
的长度(以秒为单位)。全天事件从 0000h 开始,长度为 86400。
我将 Linq 与 Entity Framework 一起使用,并且我想查找日期范围内的事件。很容易找到在两个日期时间之间开始的事件,但我不知道如何找到也在两个日期时间之间结束的事件。
这是我当前的代码:
public IEnumerable<CalendarItem> GetCalendarItems(DateTime from, DateTime to) {
var events = from c in db.CalendarItems
where c.Start >= from && c.Start <= to
orderby c.Start
select c;
return events;
}
如果我使用的是 T-SQL,我需要使用DATEADD
添加Length
秒数来Start
给出一个End
日期时间,这样就可以了,但我认为我不能在 Linq 中做到这一点。我能做些什么?