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

Sno*_*ogg 4 c# linq-to-entities nullable

我有这种方法应该从称为ENTRY的表(&EntitySet)中获取最新消息的发布

///方法获取“天”作为参数,用于新的TimeSpan(days,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<ForumEntryGridView>();
    }
Run Code Online (Sandbox Code Playgroud)

在这里,DATECREATED在数据库中为空。我无法在此查询中放置“如果” ...以任何方式进行检查?提前Thx

bru*_*nde 5

万一DATECREATED是要做null什么?

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

var entries = from ent in db.ENTRY
              where ent.DATECREATED.HasValue && ent.DATECREATED.Value > ...
Run Code Online (Sandbox Code Playgroud)


Jen*_*ens 0

好吧...您可以通过简单地使用排除 DATECREATED 等于 null 的条目

entries = from ent in db.ENTRY 
          where ent.DATECREATED != null
          where ent.DATECREATE.Value > DateTime.Today....
Run Code Online (Sandbox Code Playgroud)

并将它们包括在内

  entries = from ent in db.ENTRY 
          where ent.DATECREATED == null ||
                ent.DATECREATE.Value > DateTime.Today.....
Run Code Online (Sandbox Code Playgroud)

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