添加迁移会出错 - 错误的约束列名称?

时间:2012-09-30 09:43:39

标签: entity-framework data-migration

我正在尝试通过

创建数据库迁移
PM> Add-Migration
...
PM> Update-Database
...

但我收到的是一条错误消息,告诉我引用了无效的列。当您查看包含以下Up()方法的生成的迁移时,它会变得清晰:

    public override void Up()
    {
        RenameColumn(table: "dbo.Bestelllistes", name: "Ersteller_Id", newName: "PodioUser_Id");
        AddColumn("dbo.Bestelllistes", "ErstelltDatum", c => c.DateTime(nullable: false));
        AddColumn("dbo.Bestelllistes", "ZuletztModifiziertDatum", c => c.DateTime(nullable: false));
        AddColumn("dbo.Bestelllistes", "ZuletztModifiziertDurch_Id", c => c.Int());
        AddForeignKey("dbo.Bestelllistes", "Ersteller_Id", "dbo.PodioUsers", "Id");
        AddForeignKey("dbo.Bestelllistes", "ZuletztModifiziertDurch_Id", "dbo.PodioUsers", "Id");
        CreateIndex("dbo.Bestelllistes", "Ersteller_Id");
        CreateIndex("dbo.Bestelllistes", "ZuletztModifiziertDurch_Id");
    }

RenameColumn与仍使用旧约束列名称的AddForeignKey相矛盾。我可以手动改变这一点,但我担心这不应该是它的工作方式。

这是通常的行为还是一个错误?看起来像我一个人。

//编辑:啊,只是为了解释在此之前我做了什么:我添加了另一个属性,将dbo.PodioUsers表引用到“Bestellliste”模型。所以现在“Bestellliste”有两个属性引用“PodioUser”模型。

1 个答案:

答案 0 :(得分:0)

这也发生在我身上。当我将[Required]属性添加到之前没有它的字段时,似乎会发生这种情况。

要解决此问题,请使用update-database -force -script,编辑SQL并针对数据库运行它。在我的情况下,MSSQL和我使用Management Studio。