如何在Entity Framework Core中按类别过滤数据?

时间:2019-01-28 19:30:21

标签: c# entity-framework-core

我正在尝试基于参数managerId,projectManagerId和resourceId过滤来自查询的数据,但是,我不确定这是否是实现此目的的最佳方法。

我还需要这些参数作为类别,并根据选择的项目来过滤数据,如果选择的managerId,则结果必须仅是该managerId中的那些项目,如果selectedId manager和resourceId仅返回那些包含那些参数的项目,就好像它是一个级联过滤器一样,但是,我不知道该怎么做。

public override IEnumerable<Projeto> AllByFilter(int? gestorId, int? projectManagerId, int? recursoId) =>
       _appContext.Projetos
                  .Select(n => new Projeto
                               {
                                   Id = n.Id,
                                   ProjectManager = n.ProjectManager,
                                   Gestor = n.Gestor,
                                   ProjetoRecursos = n.ProjetoRecursos
                                                      .Select(q => new ProjetoRecurso { Recurso = q.Recurso })
                                                      .Where(x => x.Recurso.Id == recursoId).ToList()
                               })
                  .Where(x => x.Gestor.Id == gestorId && x.ProjectManager.Id == projectManagerId)
                  .ToList();
}

0 个答案:

没有答案