2014-05-21 3 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

 Смежные вопросы

  • Нет связанных вопросов^_^