Chr*_*ini 3 datetime ef-migrations
我正在使用ASP.Net 4 EF 4.3.1 Code First Migrations.
我有一个现有的模型类.我添加了一个属性:
public DateTime LastUpdated { get; set; }
Run Code Online (Sandbox Code Playgroud)
当我运行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数据类型转换为datetime数据类型在超出范围的价值.
该语句已终止.
我猜这与生成的SQL中使用的隐含默认值有关 - 它似乎抱怨它用于初始化事物的varchar是数据丢失.
无法添加非null DateTime列的问题的答案与获取为DateTime列指定的2个默认值的问题相同: EF 4.3.1迁移异常 - AlterColumn defaultValueSql为不同的默认值创建相同的默认约束名称表
也就是说,它已被打破了很长时间,你可以通过迁移它可以解决它:
public DateTime? LastUpdated { get; set; }
PM> update-database
Run Code Online (Sandbox Code Playgroud)
然后再次使用它进行迁移而不是null以获取您的预期位置:
public DateTime LastUpdated { get; set; }
PM> update-database
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |