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

我有一个模型,可以称之为事件。此事件对象具有DateTime?的Date属性。我想要获取两个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;

引发异常,告诉我“LINQ to Entities不支持指定的类型成员'TimeOfDay'。”

我没有办法解决这个问题,而且我一直在努力。请帮助我,我很沮丧。 :(

编辑:

我忘了在e.Date.Value之后在此处写“TimeOfDay”。无论如何,我在代码中做了。

我无法使用DateTime,因为无论事件的日期如何,我都必须过滤发生在一天中特定时间之间的事件。

最佳答案

使用Date and Time Canonical Functions for LINQ-to-Entities。具体来说,看看

CreateTime(hour, minute, second)

如果需要帮助调用规范函数,请查看How To: Call Canonical Functions

关于sql-server - 在LINQ查询中使用DateTime?.Value.TimeOfDay,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10000338/

10-16 04:47