c# - 过滤导航属性 EF core

标签 c# linq entity-framework-core

在我的存储库中,我尝试过滤具有事件变体的产品 但我不知道怎么做,因为这是第一次。 我应该退回所有有或没有事件变体的产品

public async Task<IEnumerable<Articolo>> GetArticoliByDivisioneAsync(string divisione)
{
    return await _ctx.Articoli
                     .Where(a => a.Divisione == divisione
                                 && a.Category!= "001")
                     .Include(i => i.Varianti)
                     .Include(i => i.FotoArticoli)               
                     .ToListAsync();
}

我要过滤的字段位于 Varianti 中。

怎么做.Where(v => v.Active == 1)

最佳答案

只需将过滤器添加到 where 方法

public async Task<IEnumerable<Articolo>> GetArticoliByDivisioneAsync(string divisione)
{
    return await _ctx.Articoli
        .Where(a => a.Divisione == divisione
                  && a.Category!= "001"
                  && a.Varianti.Any(v=>v.Active == 1))
        .Include(i => i.Varianti)
        .Include(i => i.FotoArticoli)               
        .ToListAsync();
}

如果您不需要 Varianti 的值,您可以删除包含部分

public async Task<IEnumerable<Articolo>> GetArticoliByDivisioneAsync(string divisione)
{
    return await _ctx.Articoli
        .Where(a => a.Divisione == divisione
                  && a.Category!= "001"
                  && a.Varianti.Any(v=>v.Active == 1))
        .Include(i => i.FotoArticoli)               
        .ToListAsync();
}

关于c# - 过滤导航属性 EF core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55199652/

相关文章:

c# - 使用 String.Format 为数字添加逗号和

c# - 什么是NullReferenceException,如何解决?

c# - 寻找 WCF basicHttpBinding https 教程或示例

c# - 解决C#内存泄漏的方法有哪些

html - 我如何解决 System.Collections.Generic.List 没有 ProductID 的定义或 ProductID 的方法?

asp.net-mvc - LINQ 到 SQL : making a "double IN" query crashes

c# - sql表转xml

c# - 无法跟踪实体类型 'x' 的实例,因为已在跟踪键值为 '{Id: 6}' 的另一个实例

c# - 为什么修改数据库数据的查询是可等待的,而只读取数据的查询不是?

c# - 无法让 ASP.NET MVC 6 Controller 返回 JSON