【问题标题】:How to use Entity Framework 4 Canonical Functions to get CurrentDateTime() and AddDays()?如何使用 Entity Framework 4 规范函数获取 CurrentDateTime() 和 AddDays()?
【发布时间】:2012-03-09 18:23:52
【问题描述】:

我将 Entity Framework 4 与 MySql.Data.MySqlClient 提供程序一起使用。

我可以知道http://msdn.microsoft.com/en-us/library/bb738563(v=vs.100).aspx 中列出的 CurrentDateTime() 在哪里吗?

我尝试过命名空间 System.Data.Metadata.Edm 和 System.Data.Objects 但没有运气...

更新:我刚刚发现我可以使用 DateTime.Now 而不是 CurrentDateTime() 作为数据库时间。它将在查询中翻译成 NOW()。

现在的问题是 EntityFunctions.AddDays() 不起作用。它没有被翻译成正确的 ADDDATE() 而是 AddDays()。这是否意味着 MySql 不支持规范函数? (MySql 连接器网 6.5.4)

【问题讨论】:

  • 听起来不错。你可以把你的代码放在这里吗?

标签: mysql entity-framework-4


【解决方案1】:

【讨论】:

    【解决方案2】:

    对于 ESQL,您只需使用 "CreateDateTime(...)"。如果是 Linq-to-Entities,您将使用:System.Data.Objects.EntityFunctions.CreateDateTime(...)

    【讨论】:

    • 我刚刚发现我可以使用 DateTime.Now 作为 CurrentDateTime。但是,当我尝试 EntityFunctions.AddDays 时,它给了我一个错误:FUNCTION .AddDays 不存在。这是否意味着它不适用于 MySql? (MySql 连接器网 6.5.4)
    • 当我查看查询时。它没有转化为正确的 ADDDATE() 而是 AddDays()。
    【解决方案3】:

    您可以使用此查询使用实体框架从 MySql 服务器获取sysdate

    DateTime _serverDate=dbContext.CreateQuery<DateTime>("CurrentDateTime() ").AsEnumerable().First();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2015-08-21
      相关资源
      最近更新 更多