LINQ 2实体,如何在linq查询中检查DateTime.HasValue

我有这个方法,它应该从名为ENTRY的表(&EntitySet)中获取最新的消息

///方法获取“days”作为参数,用于新的TimeSpan(天,0,0,0); !!

using (Entities db = new Entities()) { var entries = from ent in db.ENTRY where ent.DATECREATE.Value > DateTime.Today.Subtract(new TimeSpan(days, 0, 0, 0)) select new ForumEntryGridView() { id = ent.id, baslik = ent.header, tarih = ent.entrydate.Value, membername = ent.Member.ToString() }; return entries.ToList(); } 

这里DATECREATED在数据库中是Nullable。 我不能在这个查询中放置“if”…任何方法来检查它? Thx提前

如果DATECREATEDnull您想做什么?

如果您只想忽略这些记录,请使用附加条件(或where子句):

 var entries = from ent in db.ENTRY where ent.DATECREATED.HasValue && ent.DATECREATED.Value > ... 

那么……你可以通过简单地使用来排除DATECREATED等于null的条目

 entries = from ent in db.ENTRY where ent.DATECREATED != null where ent.DATECREATE.Value > DateTime.Today.... 

并包括他们

  entries = from ent in db.ENTRY where ent.DATECREATED == null || ent.DATECREATE.Value > DateTime.Today..... 

我不确定第二个查询是否在第一个条件为真时实际停止检查where子句。