91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

發布時間:2021-11-30 15:19:25 來源:億速云 閱讀:136 作者:柒染 欄目:數據庫

這篇文章給大家介紹EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一些介紹

CodeFirst是EntityFrameworks的一種開發模式,即代碼優先,它以業務代碼為主,通過代碼來生成數據庫,并且加上migration的強大數據表比對功能來生成數據庫版本,讓程序開發人員不用維護數據庫的變更,而直接維護migration即可,在它里面有你當前版本和過去歷史版本的所有變更記錄!

進行Migration數據庫版本控制

(1)通過EF-CodeFirst自己幫我們建立了數據庫,初始化的數據表

第一次建立數據模型,運行程序,自動建立數據庫和數據表,并執行對應的初始化工作

數據模型

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

數據初始化

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

EF在LindAgile里的注冊

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

數據庫第一次被創建,數據表名的名稱,可以控制它的單數和復數形式

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {            // 注意表單復數形式時,實體不能有下劃線,必須是單詞       modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
     }

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

其中__MigrationHistory表,它是數據變更的數據表,體現了數據庫的歷史

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

(2)開始數據遷移

這時,我們看解決方案里,沒有migrations文件夾,因為這時你沒有開啟變更計劃

當開啟變更后,才會出現這個文件夾

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

 Enable-Migrations

然后在項目中就看到了migrations文件夾,它將存儲我們數據庫的變更記錄

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

 我們如果新添加了數據實體DO,或者修改了原來的實體,然后希望升級一個變更記錄,可以使用add-migration 變更名(隨便寫)

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

然后在我們項目的Migrations目錄會多一個變更文件,它以時間戳開頭,我們在變更執行時,這個時間戳是它順序執行的關鍵

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

(3)把模型的變更更新到數據庫

同時,我們看一個數據表__MigrationHistory,它沒有發生變化,這是因為我們沒有把變更更新到數據庫,如果希望更新到數據庫,可以使用update-database來實現,如果不加版本號,默認更新的是最新的變更記錄,它會包括之前的變更代碼,在更新時它會與數據表__MigrationHistory里的變更記錄進行對比,如果已經更新過了,就不會執行這個版本,而只會向后更新!

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

執行完成后,我們再看一下數據表的變化,它也會多一條最新的變更記錄,以后我們再有數據表變更,就使用這個方法即可,EF-migration只要我們好好用,它只會使我們的開發便得更快捷!

EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的

(4)把模型的變更成SQL腳本,以便在生產環境中使用

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration:init

關于EF架構codeFirst從初始化到數據庫遷移的過程是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣威市| 柳林县| 门头沟区| 咸阳市| 夏邑县| 囊谦县| 顺平县| 柳林县| 彭水| 吕梁市| 页游| 桂东县| 宁阳县| 诸暨市| 集贤县| 邢台县| 独山县| 调兵山市| 东光县| 呈贡县| 淮阳县| 徐水县| 南城县| 遵化市| 丘北县| 商都县| 平度市| 石林| 汾阳市| 台安县| 凤凰县| 梁平县| 平安县| 柳林县| 高雄市| 宁武县| 潞城市| 吐鲁番市| 鸡东县| 宜兰县| 会理县|