有没有办法缩短这三个lambda表达式?现在我需要三个步骤才能得到结果.
首先,我查找属于"某人"的所有目标.然后,我在链接表中查找属于这些目标的所有projectId.最终的lambda按其id返回所有项目.
我不禁想到有一种更有效的方式,但我似乎找不到它......
public async Task<List<Project>> GetProjectsFromSomeone(string someone) {
var targetIds = from target in Context.Targets
where target.Someone.ToLower().Contains(someone.ToLower())
select target.Id;
var projectIds = from pt in Context.ProjectTargets
where targetIds.Any(id => id == pt.TargetId)
select pt.ProjectId;
var projects = from prj in Context.Projects
where projectIds.Any(id => id == prj.Id)
select prj;
return await projects.ToListAsync();
}
public class ProjectTarget
{
public int ProjectId { get; set; }
public int TargetId { get; set; }
public Project Project { get; set; }
public …Run Code Online (Sandbox Code Playgroud)