我有一个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框架。
问候。
答案 0 :(得分:2)
在EDMX中,将StoreGeneratedPattern更改为您的日期属性为Computed。遗憾的是有bug(不确定错误是否已经修复),在设计器中更改此属性仅影响EDMX文件的CSDL部分。您还需要将其添加到SSDL部分。