Отношение один ко многим - только ответные матчи у детей - PullRequest
1 голос
/ 05 марта 2012

У меня отношения один-ко-многим между столом ученика и столом курса. Я хотел вернуть всех студентов, у которых есть курсы, которые соответствуют определенным критериям в тот момент, когда у меня есть это

.Context.Users.Where(it => 
                        it.Category.Description == "Student" &&
                        it.Courses.All(p => p.Submitted == true && p.StatusId == null) && 
                        it.Courses.Count > 0);

Теперь это работает нормально; если я удаляю «it.Courses.Count> 0», я получаю соответствующих студентов, у которых нет курсов. Есть ли лучший способ сделать это без графа?

Спасибо

Dale

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Вы можете немного улучшить его, заменив it.Courses.Count > 0 на

it.Courses.Any()

, который спрашивает, имеет ли коллекция «любой» элемент (хотя бы один), и который переводит в EXISTS в SQL.

0 голосов
/ 05 марта 2012

Похоже, вы хотите что-то вроде этого

Context.Users.Where(it => 
                        it.Category.Description == "Student" &&
                        it.Courses.Any(p => p.Submitted == true && p.StatusId == null))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...