2014-05-21 54 views
-4

任何人都可以幫助我將這個SQL轉換爲LINQ嗎?將SQL轉換爲Linq(「WHERE EXISTS」)

SELECT * FROM Room_Type b 
WHERE Exists(
SELECT * 
FROM Room a 
WHERE a.RoomId NOT IN 
    (SELECT r.RoomId 
    FROM Reservation r 
    WHERE NOT (r.DepartureDate<='2015-02-16' OR r.ArrivalDate > '2015-02-20') 
) 
) 
+2

那你試試? – Uriil

+0

我試過這是sql服務器。它工作正常。我只是不知道如何轉換它 – user3405577

回答

0

可以使用簡化您的查詢聯接:

SELECT * 
FROM Room_Type rt 
    JOIN room r 
     ON r.RoomTypeId = rt.Id 
    JOIN Reseration res 
     ON res.RoomId = r.Id 
WHERE NOT (r.DepartureDate<='2015-02-16' OR r.ArrivalDate > '2015-02-20'))) 

然後你可以使用LINQ如下:

DateTime departure = new DateTime(2015,02,16); 
DateTime arrival = new DateTime(2015,02,20); 
context.Reservation.Where(r.DepartureDate<= departure || r.ArrivalDate > arrival).Select(res => res.Room.Room_Type) 
+0

Thanx xxMUROxx ..但我只得到一個結果。有了以上的SQL我有不同的結果。 – user3405577