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

标签 linq where-clause

我正在尝试检查 linq 中的日期是否为空,如果不是,则检查它的 future 日期。

QuestionnaireRepo.FindAll(q => !q.ExpiredDate.HasValue || q.ExpiredDate >DateTime.Now).OrderByDescending(order => order.CreatedDate);

我需要第二个检查仅在第一个为真时才适用。我使用的是单一存储库模式,FindAll 接受了 where 子句

有任何想法吗?这里有很多类似的问题,但没有给出答案,正如您可能猜到的那样,我对 Linq 很陌生:)

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

最佳答案

这行不通?

QuestionnaireRepo.FindAll(
    q => (q.ExpiredDate == null) || (q.ExpiredDate > DateTime.Now));

关于具有多个条件和空检查的 Linq where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2464122/

相关文章:

ruby-on-rails - 事件记录中包含 OR 的 where 子句的正确语法

Haskell - 引用使用 where 定义的列表是否只创建一次列表,还是每次引用时创建列表?

c# - 在 linq 中使用 groupby 进行多次连接

c# - 将 Linq 查询结果映射到 DTO 类

c# - 包括过滤器子集合

c# - 从关联的属性值中获取 xml 属性值

c# - 使用 linq/Entity Framework 查询多对多关系。代码优先

php - 我搞砸了我的where子句吗?得到意想不到的结果

mysql - MySQL 的 WHERE IN 子句有困难

php - MySQL SELECT where if 条件组