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提前
如果DATECREATED
为null
您想做什么?
如果您只想忽略这些记录,请使用附加条件(或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子句。