Linq-连接多个表并输出到单个结果集中

时间:2019-04-15 09:09:00

标签: c# entity-framework linq

我有一个Employee表,其中的DepartmentId列是Department表的外键,Department表具有DepartmentId列和DepartmentName列。

在搜索功能中,最终用户提供DepartmentName,我需要显示属于该部门的所有Employee详细信息。

我如何将Department表加入Employee表

 List<Employee> employees = new List<Employee>();

 employees = EMPDB.Employees.AsNoTracking().select( e => new Employee()
 {
 FirstName = e.FirstName,
 LastName = e.LastName,
 DepartmentName =

 })where(e.Departmentid == depName).ToList();

我想像上面那样列出我的员工列表

1 个答案:

答案 0 :(得分:0)

您可以对Departments表执行LEFT JOIN,例如

var data = (from emp in EMPDB.Employees
                join dept in EMPDB.Departments on emp.DepartmentId equals dept.Id 
                && dept.DepartmentName == depName into joindata
                from joindata in joindata.DefaultIfEmpty()
                select new 
                { 
                 FirstName = emp.FirstName, 
                 LastName = emp.Lastname,
                 DepartmentName = !string.IsNullOrEmpty(dept.DepartmentName) ? dept.DepartmentName : "No Department" 
                };).ToList();