2

我正在使用EF 5的EF電源工具的Beta 3版對現有數據庫進行逆向工程。EF 5.0在反向工程數據庫上遷移。無法更新模型更改,因爲表已存在

當我從項目上下文菜單中選擇「反向工程代碼優先」時,我按預期得到所有模型和DBContexts +映射。而且一切看起來不錯。

我在逆向工程過程完成後立即成功遷移。

但是我想添加一個新的屬性到其中一個模型。添加新屬性後,

我跑PM>添加遷移AddMyPropertyToMyTable

創建遷移文件,

如果我再嘗試PM>更新,數據庫

我得到一個錯誤說服力我表格已經存在了。

我在這裏以下教程:>http://msdn.microsoft.com/en-us/data/jj200620

爲什麼會出現這個錯誤?當然表中存在,我只是反向設計它

我應該在逆向工程後刪除數據庫嗎?或者在逆向工程Db的情況下,我是否必須對實際數據庫進行更改,然後再次對其進行工程設計,以便在項目中獲得所需的更改(因此,逆向工程的起點是什麼?)

是否有教程中缺少的東西,即在模型更改之後需要額外的步驟才能使數據庫更新?

回答

8

當您使用現有數據庫啓用遷移時,EF未添加__MigrationHistory表或初始遷移(DbMigration)文件。

您可以通過添加一個初始遷移包管理器控制檯執行以下操作:

Add-Migration Initial -IgnoreChanges 

這將是一個空的初始遷移。然後迫使EF創建__MigrationHistory表,你可以使用:

update-database 

這應該然後創建__MigrationHistory表(在系統表)

您現在應該能夠使模式的轉變,並創造新的遷移文件(或通過在Migrations文件夾下的Configuration.cs文件中配置它來使用自動遷移)。

您可以使用update-database手動運行這些遷移更改,或者通過使用MigrateDatabaseToLatestVersion初始值設定項將數據庫自動遷移到應用程序啓動時的最新遷移。

您可以在app.config/web.config中設置它,以便它在生產中不會被設置爲例如。

+0

謝謝,完美的作品。 – John

相關問題