Преобразование SQL-запроса в LINQ-запрос со сложным LEFT JOIN - PullRequest
0 голосов
/ 06 мая 2011

В системе, которую я использую, есть две таблицы: таблица сотрудников и таблица TimesheetHeader. Таблица TimesheetHeader имеет в качестве внешнего ключа первичный ключ таблицы сотрудников. Запрос в SQL работает просто отлично, но мне нужно, чтобы он был запросом LINQ, который распознает C # .net.

SELECT e.Employee, e.Name, t.Status FROM Employees e LEFT JOIN TimesheetHeader t ON
e.Employee=t.EmployeeID WHERE e.unionID='CUPE 859' AND e.LabourClass='5' AND
e.Active=1 AND e.RoleID>=3 AND (t.TimesheetDate='02/09/2011' OR ISNULL(t.TimesheetDate,'')='')

ЛЮБАЯ помощь здесь очень понравилась бы.

1 Ответ

0 голосов
/ 06 мая 2011

как то так:

DateTime someDate = new DateTime(2011, 09, 02)

from e in db.Employees
join th in db.TimeHeaders.Where(t => t.TimesheetDate == null || t.TimeSheetDate == someDate) 
into TimeSheetHeaders
where e.unionID = '' && e.LabourClass == '5' && (other conditions go here)
select new {Employee = e, TimeSheetHeaders}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...