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

标签 c# linq entity-framework lambda

我有一个实体客户,它有一系列事件,每个事件都有一系列阶段。每个阶段都有可为 null 的 bool 属性 IsApprovedByAdmin。 因此,我需要进行一个查询,该查询将返回属性 IsApprovedByAdmin 未分配为 true 的每个阶段。 怎么做呢?

无效查询的示例

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

最佳答案

我想你想要SelectMany:

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

关于c# - 如何在 C# 中使用 lambda 表达式进行嵌套 where 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158421/

相关文章:

c# - WPF CreateBitmapSourceFromHBitmap() 内存泄漏

c# - 使用 LINQ 查询现有的 ListView 项

c# - 在多个属性上使用 except 过滤列表

c# - 获取不为空的属性名称

json - 我是如何解决 Json 序列化循环引用错误的?

entity-framework - 带有 EF Core 2.1 和 Sql Server 的时间戳?

c# - Npgsql + EF 不会关闭读者

.NET 3.5 中的 C# 不序列化 Java Web 服务公开的 ENUM

wpf - Ninject ActivationBlock 作为工作单元

c# - 序列化包含数组的对象