Вам не нужно использовать Include
, если вы используете свои данные в своем запросе. Include
это просто способ отключить отложенную загрузку. Include
определяет, будет ли свойство навигации заполнено данными или нет. Include
не предназначен для фильтрации чего-либо.
Ваш запрос также вернет компании (с людьми), а не людей.
return _companyRepository.GetAll().Where(company => company.Id == Id)
.SelectMany(company => company.offices)
.Where(o => o.IsActive)
.SelectMany(office => office.People)
.Where(p => p.IsFired)
.Include(person => person.Children)
.ToList();
Это создает список с людьми, включая их детей. Последний элемент управления include
говорит, что все дочерние элементы загружены этим запросом. Если вы удалите это include
, вы все равно сможете получить доступ к дочерним элементам, но это будет загрузка по требованию или отложенная загрузка. Вы не заметите никакой разницы в функциях вашей программы, но в общении с вашим sql -сервером.