Linq to sql 将SQL查询转换为具有复杂左连接的LINQ查询

Linq to sql 将SQL查询转换为具有复杂左连接的LINQ查询,linq-to-sql,sql-server-2008,Linq To Sql,Sql Server 2008,我使用的系统在it员工表和时间表中有两个表。TimesheetHeader表的外键为employees表的主键。SQL中的查询工作正常,但我需要它是C#net能够识别的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' AN

我使用的系统在it员工表和时间表中有两个表。TimesheetHeader表的外键为employees表的主键。SQL中的查询工作正常,但我需要它是C#net能够识别的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,'')='')
这里的任何帮助都会很受欢迎。

类似这样的内容:

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}