我有这个查询,我正在使用带有MySql的实体框架5执行。
var employeeDetails = (from em in entities.employeemasters.AsEnumerable()
join sf in entities.salaryfitments.AsEnumerable()
on em.empID equals sf.empID into emsf
from x in emsf
where (x.edCode.ToString().Trim().Equals(txtEDCode.Text)
&& x.edCode != "SYS001")
select new { em, x });
where (x.edCode.ToString().Trim().Equals(txtEDCode.Text)
检查是否有为该员工存储的任何收入/扣除额,如果是,我可以获得金额数字。
我希望查询返回所有员工,如果他们没有与txtEDCode.Text匹配的特定收入/扣除额,则返回默认值。
我无法在.DefaultIfEmpty()
where (x.edCode.ToString().Trim().Equals(txtEDCode.Text)
我该怎么做才能获得适当的结果?
答案 0 :(得分:1)
不是返回整个实体,而是创建一个只包含我感兴趣的字段的新对象,并使用ternary if在select语句中提供默认值,例如。
select new {
name = x.Name,
salary = x.Salary,
code = string.IsNullOrEmpty(x) ? "Blah" : x
}