2

我有用EF 4.1創建的現有數據庫。然後我安裝了EF 4.3並啓用了遷移。現在我改了一個實體的名字。 Up()方法中的第一行代碼是DropForeignKey()。如果我使用Update-Database運行遷移,則會引發異常「無法刪除約束」。實體框架4.3現有數據庫的遷移問題

問題是,使用ef 4.3的外鍵命名約定已經改變。在4.3中,它們看起來像4.1中的「FK_Table_Table_Column_ID」,如「Table_Table」。

我該如何改變這種情況?

回答

2

你能夠讓代碼先重新創建數據庫嗎?如果你這樣做,那麼所有的鍵都將使用新的命名約定重新創建。

我寫了一篇博客文章中針對此和其他一些東西看出來的時候upgrading to Entity Framework 4.3.

+0

但是db裏有allready條目。 – LuckyStrike 2012-05-09 18:38:21

0

難看。

您是否嘗試過安裝Entity Framework Power Tools並讓其逆向工程您的數據庫?它可能會更好地處理生成的代碼中現有的FK名稱格式,並幫助您克服這一障礙,而不會像重新創建全新的數據庫和手動將數據從舊數據複製到新數據那樣進行更劇烈的處理。