如何在这样的嵌套场景中使用linq中的投影?

时间:2016-02-22 08:21:17

标签: c# linq

我是Linq的新手,我刚开始研究Linq查询。我相信这与投影有关。但我无法深入了解如何在我的结果中得到我想要的东西。 这是我的场景:Office有两个分支

branch_1,branch_2

branch_1有dept_1_1和dept_1_2

branch_2有dept_2_1和dept_2_2

每个部门都有员工。

但是我需要通过Office查询以查找dept_2_2中所有员工的姓名,而dept_2_2是在branch_2中

这是我做的事情。

var result = office.Branch.First()

first()会给我branch_1,我不想让我如何获得branch_2然后进一步dept_2_2然后是所有员工。

我很感谢帮助我编写linq查询。

2 个答案:

答案 0 :(得分:0)

  var result = from branch in office.Branches
               where branch.Name == "branch2"
               from dept in branch.Departments
               where dept.Name == "dept2"
               select dept.Employees.ToList();

这给出了branch2中所有员工的IEnumerable列表 - > DEPT2

答案 1 :(得分:0)

我认为办公室类型List<Branch>。请试试这个。我希望这对你有所帮助:

        List<Employee>listOfEmployee = office.Where(l =>l.Branch == branch_2 
                                                          &&l.Branch.DeptName == dept_2_2 )
                                                          .Select(l => l.Branch.Dept.Employee.EmpName)
                                                          .ToList();