LINQ SELECT中的IF语句

时间:2009-06-23 00:16:59

标签: linq-to-sql

我正在尝试在“select new”中生成一个IF条件语句,该语句检查两个字段的值以填充属性。

from e in Employees
where e.EmployeeID == id
select new {
    EmployeeID = e.EmployeeID,
    EmployeeName = e.FirstName + " " + e.LastName,
    Status = (if e.col1.HasValue then "This Value" else if e.col2.HasValue then "Other Value")
}

列可以为空,因此列类型是DateTime?数据类型。

只有一个或另一个列具有日期时间值,而不是两者。

我该怎么做?

2 个答案:

答案 0 :(得分:49)

Status = e.col1.HasValue ? "This Value" : (e.col2.HasValue ? "Other Value" : null)

答案 1 :(得分:3)

对此

使用null coelacing运算符
Status = e.col1.HasValue ? e.col1.Value ?? "This Value" : e.col2.Value ?? "Other Value"