EntityFramework迁移:AlterColumn DateTime到DateTimeOffset

时间:2019-05-07 17:46:34

标签: entity-framework datetimeoffset alter-column

在“代码优先” EF方法中,我更改了属性的类型:

之前:

 DateTime Date { get; set; }

之后:

 DateTimeOffset Date { get; set; }

然后我执行了(Package Manager控制台):

Add-Migration Foo

哪个创建了以下代码:

public partial class Foo : DbMigration
{
    public override void Up()
    {
        AlterColumn("dbo.Foos", "Date", c => c.DateTimeOffset(nullable: false, precision: 7));
    }

    public override void Down()
    {
        AlterColumn("dbo.Foos", "Date", c => c.DateTime(nullable: false));
    }
}

但这在执行更新时(Package Manager控制台)不起作用:

Update-Database

错误:

  

错误号:5074,状态:1,类:16对象   'DF__Foo__2B2A60FE'取决于列'Date'。   ALTER TABLE ALTER COLUMN日期失败,因为一个或多个对象   访问此列。

我该如何解决?我没有在其他部分引用此列(没有索引)

1 个答案:

答案 0 :(得分:0)

正如Ivan Stoev在评论中所说,此问题已通过更新为EF 6.2(我使用的是EF 6.1.3)得以解决