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

时间:2011-01-18 12:23:00

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

我有一个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框架。

问候。

1 个答案:

答案 0 :(得分:2)

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