我正在尝试通过
创建数据库迁移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”模型。
答案 0 :(得分:0)
这也发生在我身上。当我将[Required]
属性添加到之前没有它的字段时,似乎会发生这种情况。
要解决此问题,请使用update-database -force -script
,编辑SQL并针对数据库运行它。在我的情况下,MSSQL和我使用Management Studio。