クエリについてサポートが必要ですか?私は2つのテーブルの予約とユニットを持っています。テーブル予約には、ResId、rfrom(datetime)、rto(datetime)、status(int)、UnitID(外部キー)の列があります。ステータス2は確認済みを意味します。要求された期間にすべての空きユニットを取得する必要があります。クエリは、要求された期間(存在しない)に予約が確認されていない(ステータス== 2)ユニットのみを返す必要があります。私はエンティティフレームワークを使用しているので、eSQLクエリである必要があります(他のオプションはストアドプロシージャを使用していますが、それを避けたいです)。データベースはsqlexpress2005です。また、クエリはテーブルユニットの値に応じてユニットをフィルタリングする必要がありますが、それは問題ではありません。クエリの結果(複数のwhereステートメント)でlinqを使用してこれを行うことができます。
編集: このクエリは機能しています:
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 Units.category=@cat
エンティティSQLではどのように見えますか?linqでそれを行うことはできますか?エンティティ名はテーブルと同じです。