私は質問が必要ですか? 私は2つのテーブル予約&単位を持っています。 テーブル予約には、ResId、rfrom(datetime)、rto(datetime)、status(int)、UnitID(外部キー)という列があります。 ステータス2は確認済みを意味します。 要求された期間にすべてのフリーユニットを取得する必要があります。クエリは、が確認されていないユニットのみを返す必要があります。予約(ステータス== 2) 私はエンティティフレームワークを使用していますので、eSQLクエリでなければなりません(他のオプションはストアドプロシージャを使用していますが、避けたい)。データベースはSQL Express 2005です。 また、クエリはテーブル単位の値に応じてフィルタリングする必要がありますが、問題はありません。 私はlinqでクエリの結果(multiple where文)を実行できます。無料宿泊施設を検索
編集: このクエリが動作している:
select * from Units where
not exists (select *
from Reservations
where Reservations.unitID = Units.unitID
and Reservations.status = 2
and (@datefrom between Reservations.rfrom and Reservations.rto-1
or @dateto between Reservations.rfrom+1 and Reservations.rto
or rfrom between @datefrom and @dateto-1
or rto between @datefrom+1 and @dateto))
and [email protected]
エンティティSQLでどのように見えますか?私はlinqでそれを行うことができますか? エンティティ名は表と同じです。