LINQ коррелированный подзапрос - PullRequest
0 голосов
/ 28 апреля 2018

Две таблицы - Транспортные средства и соглашения. Я хочу, чтобы подзапрос проверил, что у моего транспортного средства нет действующего соглашения. Я провел весь день, пытаясь реализовать различные решения, найденные в Интернете, но я не могу заставить этот запрос работать. Проблема с версией ниже состоит в том, что 4-я строка t1 не существует в области видимости. Я понимаю, почему это так, но я не знаю, что мне нужно делать по-другому. Может ли кто-нибудь помочь начинающему новому разработчику .net, пожалуйста? : О)

var cars = from t1 in db.VEHICLEs
                   && !(from t2 in db.AGREEMENTs
                           where t2.STATUS_OPEN == true
                           where t1.CAR_ID == t2.CAR_ID
                           where enDate > t2.HIRE_START_DATE
                           where enDate < t2.HIRE_END_DATE
                           select t2)                               
                           select t1;

1 Ответ

0 голосов
/ 28 апреля 2018

Попробуйте использовать Any. Что-то вроде -

var cars =  from v in db.VEHICLEs
   where !AGREEMENTs.Any(a => (a.CAR_ID == v.CAR_ID 
   && a.STATUS_OPEN
   && enDate > v.HIRE_START_DATE
   && enDate < v.HIRE_END_DATE)
...