私のアプリケーションには組み込みのカレンダー システムがあり、それらのデータベース スキーマは次のようになります。
CalendarItem( CalendarItemId bigint, Start datetime, Length int, Blargh nvarchar(MAX) )
Start
はイベント開始時の UTC 日時値Length
で、イベントの長さ (秒単位) です。終日イベントは 0000h から始まり、長さは 86400 です。
Entity Framework で Linq を使用しており、日付範囲内にあるイベントを見つけたいと考えています。2 つの日時の間に開始するイベントを見つけるのは簡単ですが、2 つの日時の間に終了するイベントを見つける方法がわかりません。
これが私の現在のコードです:
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
を追加して日時を指定する必要がありますが、これは機能しますが、Linq でこれを行うことはできないと思います。私に何ができる?Length
Start
End