Linq to sql LINQ SELECT中的IF语句

Linq to sql LINQ SELECT中的IF语句,linq-to-sql,Linq To Sql,我试图在“selectnew”中生成一个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.

我试图在“selectnew”中生成一个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?数据类型

只有一列或另一列具有datetime值,而不是两者


如何执行此操作?

为此使用空的协同替换运算符

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

事实上,它与OP指定的相反。你这个漂亮的男人,我在返回联系人时在Windows Phone上收到了一个NullReferenceException。公司。。。正在尝试联系.companys.FirstOrDefault()。LINQ查询中的CompanyName被炸出。。。下面的方法非常有效!CompanyName=(c.companys.Count()>0)?c、 companys.FirstOrDefault().CompanyName:“