2015-04-26 83 views
0

使用MVC4和EF代碼第一次更新數據庫表和列

我重新命名錶/列名即表:從分類到分類模型和代碼,當我運行遷移聲明

Update-Database -Verbose -Force 

我得到一個錯誤:

The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.Categories' and the index name 'PK_dbo.Categories'. The duplicate key value is(). Could not create constraint. See previous errors. The statement has been terminated.

在配置文件中我有AutomaticMigrationsEnabled = true;

是否還有其他事情我需要做以使更改應用於數據庫中?

+0

您是否也重命名PK? –

+0

是的,我有。我應該檢查什麼? – Ben

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

2

您無法修改PK。

1 - 刪除現有的數據庫,然後運行Update-Database

2 - 運行Update-Database -Script生成更新腳本,並添加DROP INDEX TSQL到生成的文件並運行該腳本。

3 - 通過Visual Studio或Management Studio從表中刪除鍵約束,然後刪除TSQL以刪除生成腳本中的索引,然後運行腳本。

+0

我不想刪除數據庫。我已經有數據在表格中了。沒有辦法重命名它?當我嘗試生成腳本'PM> update-database -Script -Force' - >錯誤:用戶取消了保存對話框(異常來自HRESULT:0x8004000C(OLE_E_PROMPTSAVECANCELLED)) – Ben

+0

1備份數據庫2 - 在新的數據庫3-刪除數據庫4-運行'Update-Database' 5-通過EF將備份表中的數據插入到生成的數據庫表中 –