在LINQ查询中使用DateTime?.Value.TimeOfDay

Uma*_*gon 8 linq sql-server asp.net-mvc entity-framework timespan

我正在尝试使用ASP.NET MVC 3上的LINQ进行查询.

我有一个模型,我们称之为事件.此Event对象具有DateTime?的Date属性.我想要的是获取2个TimeSpans之间的事件.

现在我的代码如下所示:

TimeSpan From = new TimeSpan(8,0,0);
TimeSpan Until = new TimeSpan(22,0,0);

var events =
    from e in db.Events
    where e.Date.Value.TimeOfDay >= From,
          e.Date.Value.TimeOfDay <= Until
    select e;
Run Code Online (Sandbox Code Playgroud)

抛出异常,告诉我"LINQ to Entities中不支持指定的类型成员'TimeOfDay'."

我无法解决这个问题,而且我一整天都在努力.请帮助我,我很沮丧.:(

编辑:

我忘了在e.Date.Value之后写下"TimeOfDay".无论如何,我在我的代码中做了.

我无法使用DateTime,因为我必须过滤在一天的特定时间之间发生的事件,尽管事件的日期.

jas*_*son 13

LINQ-to-Entities使用日期和时间规范函数.具体来说,看看

CreateTime(hour, minute, second)
Run Code Online (Sandbox Code Playgroud)

如果您需要帮助调用规范函数,请查看如何:调用规范函数.

  • 我的天啊!这解决了我的问题!我想我爱你,哈哈。非常感谢!:D (2认同)
  • @Umagon:我在别人身上产生了他们自己不理解的感觉。 (2认同)