2012-09-30 41 views
0

我試圖通過添加遷移出錯 - 錯誤的約束列名稱?

PM> Add-Migration 
... 
PM> Update-Database 
... 

創建一個數據庫遷移,但我得到的是一個錯誤信息,告訴我,無效的列被引用。它仍然使用舊約束列名

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

這也發生在我身上。當我將[Required]屬性添加到以前沒有的字段時,似乎發生這種情況。

要解決此問題,我使用update-database -force -script,編輯SQL並針對數據庫運行它。在我的情況下,這是MSSQL和我使用的管理工作室。