當我們修改數據模型,添加一個如下字段
再次運行程序,會因為數據庫結構與模型不一致而報錯
為解決以上錯誤可以采取以下三種方式
1、 刪除數據庫,重新運行站點,會重新生成數據庫,這樣就會丟失數據
2、 手動在數據庫中修改表結構,使其與模型一致
3、 使用如下教程所示的EF的數據遷移【Code First Migrations】
在NuGet程序包管理器中執行如下命令啟用EF的數據遷移
此時會生成一下兩個文件
其中【201504030707151_InitialCreate】是根據存在的數據庫文件生成的,建表的代碼,如下
【Configuration】是自動遷移的配置類,Seed方法中可以進行一些數據的初始化,如下
然后,我們繼續在程序包管理器控制台執行以下命令,生成數據庫改動相關的代碼,Initial為自動將要生成的類的名稱,可以自定義,但是要避免與其他類型重復,否則會報錯
如下生成了一個【201504030712220_Initial】文件
查看代碼可以看到我們添加了一個Description字段:
最后我們在程序包管理器的控制台中執行如下命令,將所有變動寫入數據庫
此時,再次運行站點,可以發現網站已經可以正常訪問,Description字段已經成功添加進數據庫中。