在Linq中的左联接中检查左侧表的空条件

时间:2019-04-10 13:08:59

标签: c# linq left-join

我在linq查询中使用左连接。我需要检查ON子句中的左表值是否为空。

   join x in employeee on u.id equals x.userId into ux 
   from ujoinx in ux.DefaultIfEmpty()
   join y in department on ujoinx.id equals y.employeeId into xy 
   from xjoiny in xy.DefaultIfEmpty()
   select new {
      EmployeeSal = ujoinx!=null?ujoinx.employeeSal:0, 
      EmployeeTax = ujoinx!=null?ujoinx.employeeTax:0, 
      UserName = u.username,
      DeptName = xjoiny!=null?xjoiny.name:""         
   }

在这里,我想检查 ujoinx 在此连接条件下是否为null。 join y in department on ujoinx.id equals y.employeeId into xy

是否有可能用ujoinx.id equals y.employeeId检查空条件?

1 个答案:

答案 0 :(得分:0)

在您的评论中,您将where子句放在了错误的位置。您应该在join之前 进行过滤:

from ujoinx in ux.DefaultIfEmpty()
    where ujoinx != null
    join y in department on ujoinx.id equals y.employeeId
    into xy