最近用mvc+ef學習時遇到修改model後而資料庫沒更新報錯,就在網上找關於資料遷移自動更新資料庫的,折騰了大半天終於弄了出來
第一步:在程式包管理器控制台裡: enable-migrations -projectname ef所在的專案名稱
第二步:執行後會在字段生成migrations資料夾,migrations->configuration.cs 類裡把automaticmigrationsenabled改為true(即設為model有改動自動更新資料庫)
如有刪除欄位則要加 automaticmigrationdatalossallowed = true(可接受自動遷移期間的資料丟失的值)
第三步:在owndbcontext裡
publicowndbcontext()
: base("
defaultconnection")
ps:在查的一些資料中有些沒有第三步,可我的不改這個還是報錯改了才可以
或裡面為 database.setinitializer(new dropcreatedatabaseifmodelchanges());
當你修改完某個model,在 package manager console 中輸入add-migration model名 會有對應的檔案生成,
update-database 這個命令會把你對實體的更改 通過 migration檔案對應的對資料庫進行修改
ps:如果實體模型改變了,也可以使用add-migration [遷移檔名] 命令可以生成待遷移檔案,最後使用update-database命令提交改變。
system.data.entity.database.setinitializer(new system.data.entity.migratedatabasetolatestversion());
自動更新原理
安裝補丁的時候,客戶端的主程式一般是要關閉的,除非採用動態解除安裝 調入元件的技術,比如網路遊戲,就是盡量讓玩家邊玩遊戲邊更新。人們嫌這樣的公升級仍然太麻煩,後來出現了b s結構,大家像抓住了救命稻草一樣的追捧至今,希望能從這些勞動中解脫出來。b s結構就是瀏覽器 伺服器結構,它所有的功能,都是在瀏...
自動更新元件
一些說明 自動更新幾乎每個程式都有。而自動更新的基本方法就是 1.比較本地版本與伺服器上的版本,做出是否需要更新的判斷 配置檔案的格式如下 xml version 1.0 encoding gb2312 configmodel xmlns xsi xmlns xsd ver 2.0ver 版本號 p...
自動更新元件
一些說明 自動更新幾乎每個程式都有。而自動更新的基本方法就是 1.比較本地版本與伺服器上的版本,做出是否需要更新的判斷 配置檔案的格式如下 xml version 1.0 encoding gb2312 configmodel xmlns xsi xmlns xsd ver 2.0ver 版本號 p...