【问题标题】:Linq - Join multiple tables and get output into single result setLinq - 连接多个表并将输出放入单个结果集中
【发布时间】:2019-04-15 09:09:00
【问题描述】:

我有一个 Employee 表,它的 DepartmentId 列是 Department 表的外键,Department 表有 DepartmentId 列和 DepartmentName 列..

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

如何将 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();

我希望我的员工名单像上面那样

【问题讨论】:

标签: c# entity-framework linq


【解决方案1】:

您可以使用 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2011-11-24
    • 1970-01-01
    • 2014-05-16
    相关资源
    最近更新 更多