C# 将具有左联接的sql查询转换为lambda或Linq表达式

C# 将具有左联接的sql查询转换为lambda或Linq表达式,c#,sql-server,linq-to-sql,C#,Sql Server,Linq To Sql,我有下面的SQL查询,我想将它转换为Lambda或Linq表达式,用于C 解决了,我得到了以下解决方案- var result = (from l in db.Employees join p in db.docs.Where(j => j.CompanyId == 1 && j.TaxYear == 2015) on l.EmployeeId equals p.EmployeeId into temp where l.CompanyId == 1

我有下面的
SQL
查询,我想将它转换为
Lambda
Linq
表达式,用于
C


解决了,我得到了以下解决方案-

var result = 
(from l in db.Employees 
 join p in db.docs.Where(j => j.CompanyId == 1 && j.TaxYear == 2015) 
 on l.EmployeeId equals p.EmployeeId into temp    
 where l.CompanyId == 1
    select new 
      { EmployeeId =  l.EmployeeId, 
        EmployeeName = l.EmployeeName 
 }).Distinct().OrderBy(X => X.EmployeeName).ToList();

我想先过滤DOCS表,然后左键连接Employees表。我不明白如何使用Linq或Lambda表达式Google
Linqer
-sql-to-Linq Converter下面的表达式,我试过了,但那给出了错误的行数—(从db中的l开始。雇员在l.EmployeeId上的db.DOCS中加入p等于p.EmployeeId从temp.DefaultIfEmpty()中的j进入temp)其中l.CompanyId==cust.Id&&j.CompanyId==cust.Id&&j.TaxYear==TaxYear选择新的{l.EmployeeId,l.EmployeeName}).Distinct().OrderBy(X=>X.EmployeeName.ToList();我的机器上没有转换器,由于管理员限制,无法安装。。。有人能帮我吗?你是排得太少还是太多了。我认为您需要一个左外部联接,其中包括联接B,其中联接字段在a中为空。请参阅网页:
var result = 
(from l in db.Employees 
 join p in db.docs.Where(j => j.CompanyId == 1 && j.TaxYear == 2015) 
 on l.EmployeeId equals p.EmployeeId into temp    
 where l.CompanyId == 1
    select new 
      { EmployeeId =  l.EmployeeId, 
        EmployeeName = l.EmployeeName 
 }).Distinct().OrderBy(X => X.EmployeeName).ToList();