.net 实体框架迁移到datetime2

.net 实体框架迁移到datetime2,.net,entity-framework,entity-framework-6,sql-server-2014,datetime2,.net,Entity Framework,Entity Framework 6,Sql Server 2014,Datetime2,我们首先使用实体框架6代码。我们最近决定将数据库中的datetime格式移到datetime2格式。我们的数据库目前包含大量数据和大约262个表 通过谷歌搜索,我找到了如何迁移到datetime2的描述: modelBuilder.Properties<DateTime>() .Configure(c => c.HasColumnType("datetime2")); modelBuilder.Properties() .Configure(c=>c.Ha

我们首先使用实体框架6代码。我们最近决定将数据库中的datetime格式移到datetime2格式。我们的数据库目前包含大量数据和大约262个表

通过谷歌搜索,我找到了如何迁移到datetime2的描述:

modelBuilder.Properties<DateTime>()
.Configure(c => c.HasColumnType("datetime2"));
modelBuilder.Properties()
.Configure(c=>c.HasColumnType(“datetime2”);
因此,我将这部分代码放在
OnModelCreating
方法中。然后我运行Add Migration command,它创建了一个Up方法,其中包含大量的
DropPrimaryKey
AlterColumn
AddPrimaryKey
行,如本例所示:

然后我运行了更新数据库,并收到以下错误消息:

对象“DF__AdminMessa__Date__353DDB1D”依赖于列“Date”

由于一个或多个对象,ALTER TABLE ALTER COLUMN Date失败 访问此列

我猜这个错误是由于表上的约束造成的。 我知道我可以暂时重新运行这个脚本,但是我们必须在262个表上手动运行这个脚本,禁用约束。除此之外,我不知道在第一次使用代码时这样运行纯脚本是否合适

有没有合适的方法首先将现有数据库(含数据)迁移到EF代码中的datetime2