Мои классовые отношения: ClassMaster 1 ---- * ClassSessions
Моя цель: вернуть все ClassMasters, у которых ClassSessions с StartDateTime больше текущей даты, вместе с этими ClassSessions (отфильтрованные по дате).
В T-SQL я бы сделал это:
select *
from ClassSession
join ClassMaster on ClassMaster.ClassId = ClassSession.ClassId
Where ClassSession.StartDateTime > getdate()
Мне нужно реализовать те же результаты в запросе Entity Framework 4. Я думал, что это сработает, но это не так:
var classes = ctx.ClassSessions
.Include("ClassMasters")
.Where(s => s.StartDateTime > DateTime.Now)
.Select(s => s.ClassMaster)
.ToList();
Это дает мне все ClassMasters, которые имеют некоторую ClassSession с StartDateTime> текущей датой, но свойство ClassSessions содержит все ClassSessions, включая более старую, чем текущая дата. Я хочу только ClassSessions с StartDateTime> текущая дата.
Что я делаю не так?
Большое спасибо!