Entity Framework: запрос дочерних сущностей

Я изучаю Entity Framework в мес, и у меня возникли проблемы !!

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

Например ...

db.Parents
.Include(p => p.Children)
.Where(p => p.Children.Any(c => c.Age >= 5))

Это вернет всех родителей, у которых есть ребенок в возрасте 5+, но если я перейду через коллекцию Parents.Children, будут присутствовать все дети (а не только дети старше 5 лет).

Теперь этот запрос имеет для меня смысл (я попросил включить дочерние элементы, и они у меня есть!), Но могу представить, что в некоторых сценариях я хотел бы применить предложение where к дочерней коллекции.

Вопросы:

  1. Верно ли то, что я сказал?
  2. Можно ли получить родителей и только их подмножество из базы данных без множества обращений к ней?
  3. Я ошибаюсь ? (Не было бы в первый раз) !!!!

Я нашел несколько блогов и ТАКИХ сообщений, которые затрагивают эту тему, но ничего, что объясняет это достаточно хорошо для моего маленького мозга.

РЕДАКТИРОВАТЬ

Прочитав этот блог (спасибо, Даз Льюис) ....... Я все еще не понимаю !!!

В примере, приведенном в блоге, я могу увидеть, как я могу добиться этого с помощью одного экземпляра Parent, но я изо всех сил пытаюсь понять, как я могу сделать это с коллекцией.

Как я могу получить IEnumerable, в котором каждый из родителей имеет отфильтрованную коллекцию Children (Age> = 5)?

Дополнительные пояснения:

В ответ на комментарий DonAndre я хочу: список родителей, у которых есть ребенок старше 5 лет (и включать только этих детей).

Любая помощь приветствуется,

Спасибо.

45
задан Mikhail 7 March 2016 в 09:58
поделиться