我正在尝试基于参数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();
}