实体框架迁移到datetime2

时间:2017-07-07 13:05:27

标签: .net entity-framework entity-framework-6 sql-server-2014 datetime2

我们首先使用Entity Framework 6代码。我们最近决定将数据库中的日期时间格式转换为datetime2格式。我们的数据库目前包含大量数据和大约262个表。

通过Google搜索,我发现this answer描述了如何迁移到datetime2:

modelBuilder.Properties<DateTime>()
.Configure(c => c.HasColumnType("datetime2"));

所以我将这部分代码放在OnModelCreating方法中。然后我运行了Add-Migration commend,它创建了一个包含大量DropPrimaryKeyAlterColumnAddPrimaryKey行的Up方法,如下例所示:

enter image description here

然后我运行了Update-Database commend并得到了以下错误消息:

  

对象&#39; DF__AdminMessa__Date__353DDB1D&#39;取决于列&#39;日期&#39;。

     

ALTER TABLE ALTER COLUMN日期因一个或多个对象而失败   访问此列。

我猜这个错误是由于对表的约束造成的。 我知道我可以临时disable them并再次运行此脚本但是我们必须在约262个表上手动运行禁用约束的脚本。除此之外,我不知道在使用Code First时是否可以运行这样的纯脚本。

有没有正确的方法将现有数据库(带数据)迁移到EF Code First中的datetime2?

0 个答案:

没有答案