C# 根据其中一个datetime列的值选择数据库实体
我在数据库中有表C# 根据其中一个datetime列的值选择数据库实体,c#,asp.net,linq,C#,Asp.net,Linq,我在数据库中有表文章。该表包含日期过期列,该列可以为空 我想选择未过期的文章。我有以下代码,但不幸的是,它不工作 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 < DateTime.Now
select a).ToList();
var lstarce=(来自Articles.ToList()中的a)
其中a.Block==false
&&a.DateExpiration
橡皮泥帮我
编辑:
我使用这个代码,这个工作
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 lstarce=(来自Articles.ToList()中的a)
其中a.Block==false
&&(!a.DateExpiration.HasValue)| |(a.DateExpiration.HasValue&&a.DateExpiration.Value
如果没有日期意味着该商品尚未过期,则应执行以下操作:
var lstArticle = (from a in Articles.ToList()
where a.Block == false
&& (!a.DateExpiration.HasValue || a.DateExpiration < DateTime.Now)
select a).ToList();
var lstarce=(来自Articles.ToList()中的a)
其中a.Block==false
&&(!a.DateExpiration.HasValue | | a.DateExpiration
如果没有日期意味着该项目已过期,这应该有效:(根据您的评论,您需要第一个示例)
var lstarce=(来自Articles.ToList()中的a)
其中a.Block==false
&&(a.DateExpiration.HasValue&&a.DateExpiration
我刚刚注意到,如果要从源中选择准确的对象,则在select语句中不需要“new”关键字。如果没有日期意味着该项尚未过期,则应该这样做:
var lstArticle = (from a in Articles.ToList()
where a.Block == false
&& (!a.DateExpiration.HasValue || a.DateExpiration < DateTime.Now)
select a).ToList();
var lstarce=(来自Articles.ToList()中的a)
其中a.Block==false
&&(!a.DateExpiration.HasValue | | a.DateExpiration
如果没有日期意味着该项目已过期,这应该有效:(根据您的评论,您需要第一个示例)
var lstarce=(来自Articles.ToList()中的a)
其中a.Block==false
&&(a.DateExpiration.HasValue&&a.DateExpiration
我刚刚注意到,如果要从源代码中选择准确的对象,则在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();
var-lstarce=
(摘自Articles.ToList()中的a)
其中a.Block==false
&&a.DateExpiration.HasValue
&&a.DateExpiration.Value
假设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();
var-lstarce=
(摘自Articles.ToList()中的a)
其中a.Block==false
&&a.DateExpiration.HasValue
&&a.DateExpiration.Value
如果日期为空,您希望如何处理它?您可以尝试将其转换为null并进行筛选。如果日期为null,您希望如何处理它?您可以尝试将其转换为null并进行筛选。第一个示例将选择日期过期为null的项目。第二个示例不会选择DateExpiration为null的项目。但对于您的代码,不要选择日期过期为null的文章。刚刚选择了a.DateExpiration.Hasvalue的文章我希望选择DateExpiration为null,而a.DateExpirationDateExpiration
为null
时,您希望行为是什么?如果DateExpiration为null,请选择this@BabakSaeedi然后用奥利弗的第一个建议。它将完美地工作在您的情况下与此代码,没有选择的文章与空日期Expiration@BabakSaeedi当DateExpiration
为null
时,您希望行为是什么?如果DateExpiration为null,请选择this@BabakSaeedi然后用奥利弗的第一个建议。在你的情况下,它会非常有效