EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

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

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了泉山免費(fèi)建站歡迎大家使用!

一些介紹

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

進(jìn)行Migration數(shù)據(jù)庫版本控制

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

第一次建立數(shù)據(jù)模型,運(yùn)行程序,自動建立數(shù)據(jù)庫和數(shù)據(jù)表,并執(zhí)行對應(yīng)的初始化工作

數(shù)據(jù)模型

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

數(shù)據(jù)初始化

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

EF在LindAgile里的注冊

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

數(shù)據(jù)庫第一次被創(chuàng)建,數(shù)據(jù)表名的名稱,可以控制它的單數(shù)和復(fù)數(shù)形式

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

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

其中__MigrationHistory表,它是數(shù)據(jù)變更的數(shù)據(jù)表,體現(xiàn)了數(shù)據(jù)庫的歷史

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

(2)開始數(shù)據(jù)遷移

這時,我們看解決方案里,沒有migrations文件夾,因?yàn)檫@時你沒有開啟變更計(jì)劃

當(dāng)開啟變更后,才會出現(xiàn)這個文件夾

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

 Enable-Migrations

然后在項(xiàng)目中就看到了migrations文件夾,它將存儲我們數(shù)據(jù)庫的變更記錄

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

 我們?nèi)绻绿砑恿藬?shù)據(jù)實(shí)體DO,或者修改了原來的實(shí)體,然后希望升級一個變更記錄,可以使用add-migration 變更名(隨便寫)

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

然后在我們項(xiàng)目的Migrations目錄會多一個變更文件,它以時間戳開頭,我們在變更執(zhí)行時,這個時間戳是它順序執(zhí)行的關(guān)鍵

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

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

同時,我們看一個數(shù)據(jù)表__MigrationHistory,它沒有發(fā)生變化,這是因?yàn)槲覀儧]有把變更更新到數(shù)據(jù)庫,如果希望更新到數(shù)據(jù)庫,可以使用update-database來實(shí)現(xiàn),如果不加版本號,默認(rèn)更新的是最新的變更記錄,它會包括之前的變更代碼,在更新時它會與數(shù)據(jù)表__MigrationHistory里的變更記錄進(jìn)行對比,如果已經(jīng)更新過了,就不會執(zhí)行這個版本,而只會向后更新!

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

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

EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的

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

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

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

標(biāo)題名稱:EF架構(gòu)codeFirst從初始化到數(shù)據(jù)庫遷移的過程是怎樣的
瀏覽地址:http://muchs.cn/article26/ghssjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、品牌網(wǎng)站建設(shè)、App設(shè)計(jì)網(wǎng)站建設(shè)、外貿(mào)建站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)