【问题标题】:Entity Framework setting Auto DateTime Column to: 01/01/0001 00:00:00实体框架将自动日期时间列设置为:01/01/0001 00:00:00
【发布时间】:2011-01-18 12:22:59
【问题描述】:

我有一个 MS SQL Srver 2005 数据库,它有一个带有 DatTime 列的表。 DateTime 列属于 smalldatetime 类型。日期和时间由数据库使用 getdate() 函数自动生成。这是因为它是一个LOG记录表,所以只是插入日志,由db生成日期时间。

通过实体框架创建日志并保存到数据库时,使用 LINQ 查询,在保存时会导致错误:

“SqlDateTime 溢出。必须在 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。”

在调查使用断点时,我注意到,当 Entity Framework 尝试保存 Log 对象时,Entity Framework 设置的日期设置为:

01/01/0001 00:00:00

我想这就是错误出现的原因。有没有办法解决这个问题?

我正在使用 .Net 3.5 框架。

问候。

【问题讨论】:

  • 抱歉,它的 getdate() // 不是 getgate()
  • 您可以编辑您知道的问题 - 链接就在标签下方。

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


【解决方案1】:

在 EDMX 中,将日期属性的 StoreGeneratedPattern 更改为 Computed。请注意,在设计器中更改此属性仅影响 EDMX 文件的 CSDL 部分的 bug(不确定该错误是否已修复)。您还需要将其添加到 SSDL 部分。

【讨论】:

  • 谢谢...我刚刚更改了 SSDL。 (我在 CSDL 中尝试过,但它说不允许使用属性......或类似的东西。所以我只是在 SSDL 部分进行了更改。)非常感谢......
猜你喜欢
  • 1970-01-01
  • 2012-12-29
  • 2022-01-24
  • 1970-01-01
  • 2022-07-25
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多