中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

EF架構~CodeFirst數據(ju)遷移與防數據(ju)庫(ku)刪(shan)除

回到目錄

本文介紹兩個概念,防數據庫自動刪除,這是由于在code first模式下,當數據實體發生變化時,會對原來數據庫進行刪除,并將新數據表添加進來,但這對于我們的運營環境數據庫,是萬萬不能接受的,第二個問題是數據遷移問題,當你有新的實體建立后,如何響應到數據庫,這成為一個問題,當然實現也很簡單,我們直接使用migrations工具即可.

一 防數據庫刪除

將你的業(ye)務DbInitializer的基類改成CreateDatabaseIfNotExists即可解決這個問題,這是在(zai)數據初(chu)始(shi)化時需要做的事,一(yi)般地,我(wo)們會選(xuan)擇當(dang)實體有變(bian)化時,自動更新(xin)數據庫,但這樣做影響比較大,所以(yi)我(wo)們不(bu)提倡使用(yong).

  public class ManagerInitializer : CreateDatabaseIfNotExists<ManagerContext>
    {
        protected override void Seed(ManagerContext context)
{     
//初始化代碼 } }

二 數據遷移

這個問題也是必須要解決的,我們的實體添加后,數據庫并沒有對應的表,我們就需要使用migrations命令來(lai)對(dui)數據庫進行更新(xin),具(ju)體(ti)操作如下

1 開啟migrations功能

enable-migrations -force

2 添加遷移版本

add-migration 名稱后綴

我們每(mei)次(ci)修改實(shi)體后,都應該使用這個add-migration來升級歷(li)史版本

3 更新數據庫

update-database

4 程序運(yun)行成功后(hou),如圖

這(zhe)時你查看自(zi)己的數(shu)據庫,新加(jia)的實體已經自(zi)動添加(jia)到數(shu)據庫了,呵(he)呵(he).

值得注意的是,通過這種方法進行數據庫遷移,數據庫的原數據是不會丟失的,即使你在原來的表上添加字段,老數據也不會丟,新字段會有默認值.

對于EF7來說,它只(zhi)支持Code First模(mo)式(shi),所(suo)以這種模(mo)式(shi)在(zai)dotnet框架里將會成(cheng)為(wei)主流!

補充:

最近有朋友問我在服務器上如何進行數據的更新,即在生產環境如何使用遷移,可以讀一下我的這篇文章<EF架構~CodeFirst生產環境的Migrations>

 

回到目錄

posted @ 2016-07-06 11:37  張占嶺  閱讀(4329)  評論(5)    收藏  舉報