物理的な広告スポットとその予約 (日付範囲) のリストを保持するプログラムに取り組んでいます。プログラムは、広告カテゴリ内の広告の「空きスポット」を見つけることができる必要があります。
AdTypes、AdPlaces、Reservations の 3 つのテーブルがあります。現在、日付がユーザーが選択した日付範囲と衝突しない予約を検索し、AdType アイテムをリストとして返すクエリを実装しています。この方法は、すべての AdType がある時点で予約されている場合に機能しますが、Reservations テーブルにない AdType は一覧表示されません。
フィルタリングは、次のように AdTypes クエリの PreProcessQuery で行われます。
query = query.Where(r => r.Reservations.Any(res => (res.Begindate > Begindate && Enddate < res.Enddate) || (res.Enddate < Begindate && Enddate > res.Begindate)));
予約のないすべての AdType が「期限切れ」の AdType 予約と一緒にリストされるように、クエリを「拡張」するにはどうすればよいですか?