根据其中一个datetime列的值选择数据库实体
本文关键字:datetime 选择 实体 数据库 一个 | 更新日期: 2023-09-27 18:03:59
我在数据库中有表article
。表中包含Date Expiration
列,该列可以为空
我想选择文章,如果它没有过期。我有下面的代码,但不幸的是,它不起作用。
var lstArticle = (from a in Articles.ToList()
where a.Block == false
&& a.DateExpiration < DateTime.Now
select a).ToList();
请帮帮我
编辑:我使用这个代码,并且它工作。
var lstArticle = (from a in Articles.ToList()
where a.Block == false
&& ((!a.DateExpiration.HasValue) || (a.DateExpiration.HasValue && a.DateExpiration.Value < DateTime.Now))
select a).ToList();
如果没有日期意味着该项目还没有过期,这应该可以达到目的:
var lstArticle = (from a in Articles.ToList()
where a.Block == false
&& (!a.DateExpiration.HasValue || a.DateExpiration < DateTime.Now)
select a).ToList();
var lstArticle = (from a in Articles.ToList()
where a.Block == false
&& (a.DateExpiration.HasValue && a.DateExpiration < DateTime.Now)
select a).ToList();
我刚刚注意到,如果您从源中选择确切的对象,则不需要在select语句中使用"new"关键字。
假设DateExpiration
是DateTime?
,使用如下:
var lstArticle =
(from a in Articles.ToList()
where a.Block == false
&& a.DateExpiration.HasValue
&& a.DateExpiration.Value < DateTime.Now
select new a).ToList();