Linq where子句具有多个条件和null检查

And*_*rew 7 linq where-clause

我正在尝试检查linq中的日期是否为空,如果没有检查它的未来日期.

QuestionnaireRepo.FindAll(q => !q.ExpiredDate.HasValue || q.ExpiredDate >DateTime.Now).OrderByDescending(order => order.CreatedDate);
Run Code Online (Sandbox Code Playgroud)

我需要第二次检查才能申请,如果第一次是真的.我使用单个存储库模式,FindAll接受了where子句

有任何想法吗?这里有很多类似的问题,但没有给出答案,我对Linq很新,你可能已经猜到了:)

编辑:我得到了我现在需要的结果,但在某些情况下它将检查>条件值为null值.这不是坏事吗?

Luk*_*keH 8

这不行吗?

QuestionnaireRepo.FindAll(
    q => (q.ExpiredDate == null) || (q.ExpiredDate > DateTime.Now));
Run Code Online (Sandbox Code Playgroud)