我是Entity Framework的新手。我在比较日期时间值时遇到问题,因为在我的SQL Server数据库中,datetime值存储为24hs格式,应用程序采用时间格式为A.M./P.M.格式。我试图解析字段但我收到错误消息:
LINQ to Entities不支持指定的类型成员“Date”。仅支持初始值设定项,实体成员和实体导航属性。>
以下是我尝试的内容:(如果找到任何记录,则返回true或false)
<pre><code>
return !(DB.Eventos.Where(
x =>
(x.Fecha_inicio_evento.Date >= eventos.Fecha_inicio_evento.Date
&&
x.Fecha_inicio_evento.TimeOfDay >= eventos.Fecha_inicio_evento.TimeOfDay
&&
x.Fecha_inicio_evento.Date <= eventos.Fecha_fin_evento.Date
&&
x.Fecha_inicio_evento.TimeOfDay <= eventos.Fecha_fin_evento.TimeOfDay)
||
(x.Fecha_fin_evento.Date >= eventos.Fecha_inicio_evento.Date
&&
x.Fecha_fin_evento.TimeOfDay >= eventos.Fecha_fin_evento.TimeOfDay
&&
x.Fecha_fin_evento.Date <= eventos.Fecha_fin_evento.Date
&&
x.Fecha_fin_evento.TimeOfDay <= eventos.Fecha_fin_evento.TimeOfDay
)).Any());
</code></pre>
你知道有什么办法吗?
答案 0 :(得分:0)
Database
或.Net
不会以格式存储日期。格式仅是ToString
方法如何执行任务的描述。因此,可以与运营商以标准方式进行比较。您收到的错误与Linq
的{{1}}查询相关联sql
,而entity framework
不受支持。
如果通过将比较分成2部分,您想比较日期不正确。标识Date
是.Date
的较高比较,不应该更改结果,但确实如此。与.TimeofDay
= 2011-01-02 01:01:01和Fecha_inicio_evento
= 2011-01-01 02:01:01