2011-05-05 71 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}