在使用Code first生成數據庫后
當數據庫發生更改時 運行程序就會出現數據已更改的問題 這時可以刪除數據庫重新生成解決
但是之前的數據就無法保留 為了保留之前的數據庫數據 我們需要使用到Code first數據遷移
首先如果需要更改數據結構 必須是先更改model類 然后使用Code firs數據遷移 如果直接先更改了數據庫 則使用數據遷移會報錯
使用Code firs數據遷移圖解
工具--》庫文件包程序管理器--》程序包管理控制台 如圖
注意觀察 默認項目 和程序包源
因為只有安裝了EF框架 才能使用 所以只有把 DBContext.cs 放在默認啟動目錄下才能使用
然而我們在項目開發時 我們並不會這么做 如果只是引用了EF 並不能達到安裝EF的效果 后面會說明 可以采用如圖下方法
當把DBContext.cs 放在其他目錄下時 這里用Model事例
把默認選擇為model 直接執行下面的命令會報錯 這是因為此目錄缺少EF5.0 我們需要安裝EF5.0


public Configuration() { AutomaticMigrationsEnabled = false; }
將AutomaticMigrationsEnabled = false; 改為AutomaticMigrationsEnabled = true; 開啟自動 Code first 遷移
接下來有兩種方法 第一種方法
執行命令 add-migration Initial 為遷移“Initial”搭建基架。執行后如下圖
代碼先行遷移機制在Migrations文件夾下創建另外一個類文件,文件名為時間戳+下划線+ Initial.cs,該類將被執行,創建數據庫架構。隨后,Seed方法將被執行,測試數據被添加其中。
然后執行命令 update-database 即可完成數據遷移。。。
第二種方法
執行命令 add-migration AddRatingMig 為遷移“AddRatingMig ”搭建基架。執行后如下圖
代碼先行遷移機制在Migrations文件夾下創建另外一個類文件,文件名為時間戳+下划線+ AddRatingMig.cs,該類將被執行,自動比對與數據庫差異,創建數據庫架構。隨后,Seed方法將被執行,測試數據被添加其中。
然后執行命令 update-database 即可完成數據遷移。。。
這樣就實現了修改Model類后不刪除數據庫重建 使用Code first 遷移數據 也不用擔心之前的數據會被刪除了!