首页 文章

实体框架将Auto DateTime列设置为:01/01/0001 00:00:00

提问于
浏览
2

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

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

"SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM."

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

01/01/0001 00:00:00

我想这就是错误即将来临的原因 . 有什么方法可以解决这个问题吗?

我正在使用.Net 3.5框架 .

问候 .

1 回答

  • 2

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

相关问题