Вот проблема: мне нужно вернуть коллекцию объектов с отфильтрованными вложенными коллекциями.Например: есть магазин с заказами, и мне нужно вернуть коллекцию с магазинами, которая включает вложенные коллекции с заказами, но без заказов от клиентов, помеченных как удаленные.
Вот что я пытаюсь сделать.Но все равно не повезло.Любые предложения приветствуются:)
public List<StoreEntity> GetStores(Func<Store, bool> storeFilter, Predicate<OrderEntity> orderFileter)
{
IQueryable<StoreEntity> storeEntities = Context.Stores
.Include(o => o.Order)
.Include(cu => cu.Orders.Select(c => c.Customer))
.Where(storeFilter)
//.Where(rcu=>rcu.Orders.Select(cu=>cu.Customer.Deleted==false)) //just test this doesn't work
.AsQueryable();
List<StoreEntity> storeEntities = storeEntities.ToList();
//storeEntities.ForEach(s => s.Orders.ToList().RemoveAll(c=>c.Customer.Deleted==true)); // doesn't work
foreach (StoreEntity storeEntity in storeEntities)
{
storeEntity.Orders.ToList().RemoveAll(r=>r.Customer.Deleted==true);
}
return storeEntities;
}
Проблема в том, что фильтр не применяется.Клиенты, которые удалили флаг, установленный как истинный, остаются в коллекции.