私はホテル管理システムを構築する必要があるC#クラスで最終的なプロジェクトを行っていますが、現在2つの日付の間に部屋がすでに予約されているかどうかをチェックしています。私自身でそれを理解しようとしましたが、このクエリ文字列をLINQに変換する方法がわかりません。このクエリ文字列をLINQ to SQLクエリに変換する方法?
助けが必要ですか?
query = "SELECT * FROM Suites WHERE SuiteType = " + suitetype + " AND NumberOfAdultsAllowed >= " + adults + " AND NumberOfChildrenAllowed >= " + children + " AND ";
query += "Suites.SuiteNumber NOT IN (SELECT SuiteNumber FROM Bookings WHERE ";
query += "(StartDate BETWEEN @_start AND @_end) OR ";
query += "(EndDate BETWEEN @_start AND @_end) OR ";
query += "(@_start BETWEEN StartDate and EndDate) OR ";
query += "(@_end BETWEEN StartDate and EndDate) OR ";
query += "(@_start <= StartDate and @_end >= EndDate) OR ";
query += "(@_start >= @_end))";
私が最初に
var querySearch = from q in db.Suites
where q.SuiteType == suitetype
select q;
ですべての部屋を取得して、スイート番号がテーブルBookings
で、それが指定した日付の間にある場合であるかどうかを確認する別のクエリに対してそれをチェックすることを考えました。
しかし、私は毎回失います。
完全に優れたSQL文をLinqに変換する理由は何ですか?最終プロジェクトにLinqを使用する必要がありますか? –
@MichaelZ。はい、LINQ to SQLを要件の1つとして使用する必要があります。それ以外の場合は単純なSQLを使用します。 – Denis