Подзапрос сущностей LINQ 2 с исключением (не в) и условием

У меня есть эта структура базы данных

EVENT
--- EVENTID (PK)

EVENTSEMINAR
--- EVENTID (PFK)
--- SEMINARID (PFK)

SEMINAR
--- SEMINARID (PK)

SEMINARCLASS
--- SEMINARID (PFK)
--- CLASSID. (PK)
--- Date

Я хочу получить список всех семинаров (включая их классы), которые не связаны с событием и проводятся после определенной даты.

Select * 
from Seminar, SeminarClass 
Where (Seminar.SeminarId not in (select SeminarId 
                                 from EventSeminar) 
       and seminar.SeminarId = SeminarClass.SemianrId 
       and SeminarClass.Date > something);

Как я могу перевести это на LINQ 2 Entities?

(такой сущности как EventSeminar нет, так как это только свойство навигации)

попытка достичь этого с помощью нескольких запросов доставила мне некоторые проблемы, так как я не могу использовать свой результат в качестве параметра для ожидания 2-го числа... нужно преобразование, которого я не знаю, как добиться:

var Seminars = from e in context.Event
                                .Include("Seminar")
                                .Where(x=>x.Seminar != null) 
               select e.Seminar;

var SC = from c in context.Seminar.Except(Seminars) select c;

Нужна помощь...

1 ответ

var q = from s in context.Seminars
        where s.Date > something
              && (!s.Events.Any())
        select s;

Вы не показываете свойство навигации в Seminar для навигации по EventSeminar в Eventпоэтому замените его в вышеприведенном, если я угадал.

Другие вопросы по тегам