【发布时间】:2012-06-05 22:43:37
【问题描述】:
我正在使用 ASP.Net 4 EF 4.3.1 代码优先迁移。
我有一个现有的模型类。我已经为其添加了一个属性:
public DateTime LastUpdated { get; set; }
当我运行 update-database -force -verbose 时,我得到:
ALTER TABLE [MyTable] ADD [LastUpdated] [datetime] NOT NULL DEFAULT '0001-01-01T00:00:00.000'
System.Data.SqlClient.SqlException (0x80131904): varchar 数据类型到日期时间数据的转换 类型导致超出范围的值。
声明已终止。
我猜这与生成的 SQL 中使用的隐含默认值有关 - 它似乎在抱怨它用于初始化事物的 varchar 数据丢失。
【问题讨论】:
-
这不是我的默认设置 - EF Code First Migrations 会为任何新的非空 DateTime 属性/列自动生成此 SQL。
-
SQL
DateTime数据类型的最小值为 1753 年 1 月 1 日。.NET 日期时间的最小值为 0001 年 1 月 1 日。不幸的是,冲突很常见。
标签: datetime entity-framework-migrations