2013-12-16 17 views
0

比方說,我有一個現有的數據庫,我使用EF遷移來獲得其初始狀態。您如何將實體框架遷移用於新數據庫和現有數據庫?

Enable-Migrations –EnableAutomaticMigrations 
add-migration Initial 

如果我繼續運行update-database,會出現一個錯誤消息,表明我的對象已經存在。我被告知的解決方案是刪除Up()和Down()方法中的代碼。這工作正常。現在我可以修改我的模型並添加新的遷移,然後相應地更新它們。

但是當我想創建一個新的數據庫時該怎麼辦?我繼續前進並恢復了Up/Down方法中的代碼,並且用於創建新的數據庫,但如果我嘗試將其應用於現有數據庫,則返回到已存在的對象。我猜我需要能夠在現有的數據庫上初始化歷史表。

+0

我學會了使用這個視頻。希望它有助於http://www.youtube.com/watch?v=HbDOhCjjxSY –

+0

不,該視頻僅適用於新數據庫。 – WhiskerBiscuit

+0

所以檢查第2部分,它告訴你如何,對此感到遺憾 –

回答

0

我發現了一種解決辦法,它可能會做到這一點。

確保刪除現有數據庫上的_MigrationHistory表。運行在PMC

Enable-Migrations –EnableAutomaticMigrations -Force 
add-migration Initial 
Update-Database -Script 

最後的命令將產生在IDE一個新的SQL腳本,並打開以下。刪除Initial Up()Down()方法中的代碼。您可以創建一個新數據庫,然後在該數據庫上執行該腳本並繼續使用遷移。

希望我能找到一個更優雅的方式來做到這一點。

相關問題