三元运算符有问题

时间:2019-08-08 01:17:11

标签: c#

我正在尝试从ef查询中获取特定数据,但是我的三元运算符出现了问题

PlumbingSuperintendent = prj.JobInformation.Subdivision.AORs
.Where(x => 
    x.AOR_Contact_Type_ID == "SI" && x.Service_Type == "PLUMBING" && x.Effective_End_Date != null
    ? (x.Effective_End_Date > DateTime.Now)
    : !x.Effective_End_Date.HasValue && x.IsPrimary
)
.Select(x => x.Employee.Employee_FName + " " + x.Employee.Employee_LName).FirstOrDefault(),

如果有效结束日期不为空,我想怎么做,请给我记录有效结束日期大于今天的记录。如果不是,请提供有效结束日期为空的记录。由于某些原因,这不起作用

1 个答案:

答案 0 :(得分:3)

您可以使用null coalescing operator创建此条件。

(x.Effective_End_Date ?? DateTime.Now) >= DateTime.Now

您可能需要将DateTime.Now分配给变量,因为两次使用它可能没有完全相同的值。