2011-05-05 72 views
0

我正在使用的系統在其Employees表和TimesheetHeader表中有兩個表。 TimesheetHeader表具有Employees表的主鍵作爲外鍵。 SQL中的查詢工作得很好,但我需要它成爲C#.net將識別的LINQ查詢。使用複雜的LEFT JOIN將SQL查詢轉換爲LINQ查詢

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,'')='') 

在這裏的任何幫助將非常喜歡。

回答

0

是這樣的:

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}