EntityFramework 中的 ThenInclude() 过滤器集合

问题描述 投票:0回答:0

我有以下数据库结构:一个项目包含一个项目基准列表,该列表具有一个由行业基准列表组成的全球基准。因此,项目 -> 项目基准 -> 全球基准 -> 行业基准。在编写查询以获取项目的所有基准时,我需要按扇区 id 过滤扇区基准,以便我只有那些与项目扇区相对应的扇区基准。

我试过:

_dbContext.ProjectBenchmarks
    .Include(b => b.GlobalBenchmark)
    .ThenInclude(gb => gb.SectorBenchmark
        .Where(sb => sb.SectorId == sectorId))

但它不会按行业 ID 过滤行业基准,我得到了所有行业基准。我怎么能做到这一点?

更新:根据评论,将

.ToList()
添加到此查询可解决问题。现在我需要进一步解决我遇到的问题:这个查询在
mapper.ProjectTo(<query here>).ToList()
内部,而
ToList()
在外面。我如何过滤并使用映射器来映射我的实体?

c# entity-framework linq
© www.soinside.com 2019 - 2024. All rights reserved.