2012-02-14 116 views

回答

9

這個一個不錯的步行通過被張貼在這裏:http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/

的一個變化,我建議是簡單地註釋掉的代碼在向上和向下的方法,直到你已經部署了遷移。之後,您可以取消註釋代碼,這將允許您在稍後需要時創建新數據庫。

+0

好點,謝謝! – enamrik 2012-02-18 22:24:13

+0

這是404現在 – 2014-02-28 19:41:43

+0

更多信息在這裏http://tinyurl.com/q2hepmw – Spock 2014-07-13 00:40:28

8

因此,似乎我一直在尋找的是Codebased Migrations當我設置AutomaticMigrationsEnabled = false,這被激活。我的模型是從現有數據庫生成的。要激活遷移,我需要做的就是啓用遷移(啓用遷移),使用添加遷移創建一個新的遷移文件,將其清空(我的模型已經在數據庫中,因此我不希望EF嘗試和創建它們)並部署它。要部署,添加以下到我的Global.asax文件:

protected void Application_Start() 
{ 
     var config= new Configuration(); 
     var migrator = new DbMigrator(config); 
     migrator.Update(); 
} 

一個新表__MigrationHistory創建一個新的遷移記錄在它創建。這個新的遷移記錄包含了我的模型,所以現在可以爲我的EF模型進行腳本編寫。

爲了測試,我創建了另一個遷移文件(添加遷移),我添加了一個新的屬性到模型,跑到添加的遷移腳本其新的領域,然後部署我的應用程序。遷移按預期進行。