我的應用程序有一個內置的日曆系統,併爲他們的數據庫架構是這樣的:LINQ的 - 開始有開始和長度屬性日曆事件
CalendarItem(CalendarItemId bigint, Start datetime, Length int, Blargh nvarchar(MAX))
Start
是UTC日期時間價值的情況下啓動時,並且Length
是以秒爲單位的事件的長度。全天活動開始於0000h,長度爲86400.
我正在使用Linq與實體框架,我想查找日期範圍內的事件。很容易找到在兩個日期時間之間開始的事件,但我不知道如何在兩個日期時間之間找到也是結束的事件。
這裏是我當前的代碼:
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做到這一點。我能做什麼?
請參閱http://msdn.microsoft.com/en-us/library/system.data.objects.sqlclient.sqlfunctions.dateadd.aspx –