Как вы выполняете свой запрос? Если вы используете ленивую загрузку, вы будете испытывать поведение, которое вы описываете. Вместо этого используйте функцию Include
, чтобы указать, что конкретное свойство навигации (будь то связанный объект или коллекция) должно быть загружено как часть запроса. Проще говоря, EF сгенерирует сплюснутый декартовый продукт обоих отношений, а затем правильно переформатирует данные в отношения родительские> дочерние, когда он создает ваши объекты.
Например, если у вашего родительского класса есть свойство коллекции с именем «Дети», вы бы назвали его следующим образом:
context.Parents.Include("Children").Where(p=> ...)
Или, если вы предпочитаете синтаксис запроса, а не синтаксис метода расширения ...
from p in context.Parents.Include("Children")
where p ...