如何在c#中使用lambda表达式进行嵌套where查询

本文关键字:表达式 嵌套 查询 where lambda | 更新日期: 2023-09-27 18:16:42

我有一个实体客户,它有活动的集合,每个活动都有阶段的集合。每个阶段都有一个可空的布尔属性IsApprovedByAdmin。所以我需要做一个查询,将返回我的每个阶段,有属性IsApprovedByAdmin不分配给true。怎么做呢?

查询不工作的例子

DbContext.Set<Customer>().Find(customerId).Campaigns.Where(c => c.Stages.Where(s => s.IsApprovedByAdmin != true)).AsQueryable();

如何在c#中使用lambda表达式进行嵌套where查询

我想你想要SelectMany:

DbContext.Set<Customer>()
.Find(customerId)
.Campaigns.SelectMany(c => c.Stages)
.Where(s => !s.IsApprovedByAdmin);