EF CodeFirst下的自動遷移


當我們修改數據模型,添加一個如下字段

再次運行程序,會因為數據庫結構與模型不一致而報錯

 

為解決以上錯誤可以采取以下三種方式

1、  刪除數據庫,重新運行站點,會重新生成數據庫,這樣就會丟失數據

2、  手動在數據庫中修改表結構,使其與模型一致

3、  使用如下教程所示的EF的數據遷移【Code First Migrations

 

 

NuGet程序包管理器中執行如下命令啟用EF的數據遷移

 

此時會生成一下兩個文件

 

其中【201504030707151_InitialCreate】是根據存在的數據庫文件生成的,建表的代碼,如下

 

Configuration】是自動遷移的配置類,Seed方法中可以進行一些數據的初始化,如下

 

然后,我們繼續在程序包管理器控制台執行以下命令,生成數據庫改動相關的代碼,Initial為自動將要生成的類的名稱,可以自定義,但是要避免與其他類型重復,否則會報錯

 

如下生成了一個【201504030712220_Initial】文件

查看代碼可以看到我們添加了一個Description字段:

 

最后我們在程序包管理器的控制台中執行如下命令,將所有變動寫入數據庫

 

此時,再次運行站點,可以發現網站已經可以正常訪問,Description字段已經成功添加進數據庫中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM