如何过滤嵌套的集合实体框架对象?
这是问题所在:我需要返回带有过滤的嵌套集合的对象集合。例如:有一家有订单的商店,我需要返回一个商店的集合,其中包括带有订单的嵌套集合,但没有来自客户的标记为已删除的订单。
这是我尝试做的。但是仍然没有运气。任何建议表示赞赏:)
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;}
问题是未应用过滤器。删除标记设置为true的客户将留在集合中。
SMILET
汪汪一只猫