【问题标题】:Comparing datetime 24hs to AM/PM format with Entity Framework使用实体框架将日期时间 24 小时与 AM/PM 格式进行比较
【发布时间】:2011-09-24 18:52:53
【问题描述】:

我是实体框架的新手。我在比较日期时间值时遇到问题,因为在我的 SQL Server 数据库中,日期时间值存储为 24 小时格式,而应用程序将时间格式设置为 A.M./P.M.格式。我尝试解析字段,但收到错误消息:

LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始化器、实体成员和实体导航属性。>

这是我尝试过的:(如果找到任何记录,则返回 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>

你知道有什么方法可以做到吗?

【问题讨论】:

    标签: c# asp.net sql-server entity-framework datetime-format


    【解决方案1】:

    Database.Net 不以格式存储日期。格式仅描述ToString 等方法如何完成任务。因此,可以使用运算符进行标准比较。您遇到的错误与由entity frameworkLinq 查询转换为sql 相关,只是不支持Date

    如果通过将比较拆分为 2 个部分来比较日期,则它不正确。 ID .Date.TimeofDay 的更高比较不应该改变结果,但它确实。使用Fecha_inicio_evento = 2011-01-02 01:01:01 和 Fecha_inicio_evento = 2011-01-01 02:01:01 检查结果

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      相关资源
      最近更新 更多