Фильтр активной загрузки на основе дочерних записей

#c# #asp.net-mvc #entity-framework-core

#c# #asp.net-mvc #сущность-структура-ядро

Вопрос:

 public class Parent {  public int ParentId { get; set; }  public IEnumerablelt;Childgt; Children { get; set; } }  public class Child {  public int ChildId { get; set; }  public bool Property { get; set; }  public Parent Parent { get; set; } }  

Как бы вы хотели загрузить родительский класс с его дочерним классом, но фильтровать на основе поля дочернего класса? Например, как бы я выбрал Parent записи на основе того, были ли Child.Property true они ? Но я также хотел бы загрузить всех детей Родителя, независимо от того, было ли установлено значение свойства их собственности true .

Моя попытка:

 _context.Parents.Include(x =gt; x.Children.Where(x =gt; x.Property == true)).ToListAsync();  

Это, по-видимому, загружает каждую родительскую запись, но загружает всех детей (независимо от того, установлено ли для их свойства свойство true) родителей, у которых есть ребенок со свойством свойства, установленным в значение true.

Ответ №1:

Как насчёт:

 _context.Parents  .Include(x =gt; x.Children)  .Where(x =gt; x.Children.Any(c =gt; c.Property))  .ToListAsync()  

Комментарии:

1. Статус мастера; подтвержден. спасибо br0