我在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
检查空条件?
答案 0 :(得分:0)
在您的评论中,您将where
子句放在了错误的位置。您应该在join
之前 进行过滤:
from ujoinx in ux.DefaultIfEmpty()
where ujoinx != null
join y in department on ujoinx.id equals y.employeeId
into xy