Linq - объединить несколько таблиц и получить результат в одном наборе результатов - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть таблица Employee, в которой есть столбец DepartmentId, который является внешним ключом для таблицы Department, в таблице Department есть столбец DepartmentId и столбец DepartmentName.

В функции поиска Конечный пользователь дает DepartmentName, и мне нужно отобразитьвсе сведения о сотрудниках, которые являются частью этого отдела.

как я могу присоединить таблицу Департамента к таблице сотрудников

 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 голосов
/ 15 апреля 2019

Вы можете выполнить 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...