亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

EFCodeFirstMigration總結

2019-11-14 14:28:06
字體:
來源:轉載
供稿:網友

開啟Migration

1. 通過 Tools->Nuget Package Manager->Package Manager Console 打開Package Manager Console窗口

2. Default PRoject選擇當前的DbContext所在的項目

3. 通過命令開啟Migration

Enable-Migrations

開啟之后,DbContext對應的項目中會生成一個Migrations的文件夾, 主要用來存放各個版本自動生成的更新描述文件

類似于下圖:

image

初始化庫

通常你新建了模型,在數據庫建庫之后需要執行一次add-migration命令生成一個庫初始化的migration記錄

add-migration 20160201003

后面部分的名字我通常都會按照當天日期拼接當天的版本號組成,另外一種不錯的實踐是按照增加的業務名稱命名,英文名稱會相對好點.

更新庫

庫的更新可以分為手動更新跟自動更新, 通常Code First Migration的文章都會講這里要通過Update-Database命令來把剛才的變更更新到庫里面, 通常DEV環境可以這么做,因為是直連的, 但是我們的Staging與Production環境是不可以直連的,我們要怎么做呢?

前面有提到可以自動更新,其意思就是說,你通過 add-migration生成了migration腳本,那當程序啟動的時候,如果發現數庫接口不一致,那這個就需要更新,這個時候如果是自動更新的狀態,那程序會自動執行(從意思上等同于update-database, 產生的效果相同,但是并未實際考證是否也是跑的update-database命令), 因此無論是dev環境還是staging, production都可以通過自動update-database來完成數據庫的更新。

如何設置自動更新

這里有兩步:

1. 在migrations文件夾下有個configuration的文件, 代碼如下:

public Configuration()        {            AutomaticMigrationsEnabled = true;            AutomaticMigrationDataLossAllowed = false;        }

AutomaticMigrationsEnable = true 之后, 設置EF為自動做數據庫更新。

2. 在Global.cs或者任何程序啟動的地方加入:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<CustomerDbContext, Configuration>());

這句是設定當前DbContext的一個初始化配置.

潛在的問題

自動遷移,在某些該名稱,或者刪除字段的時候,會造成現有數據的丟失,這個需要注意,目前我也是在探索過程中,有進一步的研究成果,會在更新博文說明。

 

【補充部分】

初始化腳本的更新

public partial class InitDefaultData : DbMigration    {        public override void Up()        {            Sql(@"--初始化FileType原始數據insert into FileType (SysId,FileTypeId,FileTypeName,Status,CreationTime) select NEWID(),10001,'客戶資料',0,GETDATE();insert into FileType (SysId,FileTypeId,FileTypeName,Status,CreationTime) select NEWID(),10002,'訂單資料',0,GETDATE();insert into FileType (SysId,FileTypeId,FileTypeName,Status,CreationTime) select NEWID(),10003,'車輛資料',0,GETDATE();--初始化FileCategory原始數據insert into FileCategory (SysId,FileCategoryId,FileCategoryName,Status,CreationTime) select NEWID(),1,'圖片',0,GETDATE();insert into FileCategory (SysId,FileCategoryId,FileCategoryName,Status,CreationTime) select NEWID(),2,'復印件',0,GETDATE();insert into FileCategory (SysId,FileCategoryId,FileCategoryName,Status,CreationTime) select NEWID(),3,'視頻',0,GETDATE();insert into FileCategory (SysId,FileCategoryId,FileCategoryName,Status,CreationTime) select NEWID(),4,'Excel文件',0,GETDATE();insert into FileCategory (SysId,FileCategoryId,FileCategoryName,Status,CreationTime) select NEWID(),5,'Word文件',0,GETDATE();");        }        public override void Down()        {            Sql(@"truncate table FileType");            Sql(@"truncate table FileCategory");        }    }

可以通過Sql函數來執行一些自定義的SQL腳本。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品午夜国产小视频| 精品国产91久久久| 91精品久久久久久久| 精品国产91乱高清在线观看| 国内精品久久影院| 美女久久久久久久久久久| 日韩国产欧美精品一区二区三区| 亚洲视频视频在线| 欧美资源在线观看| 国产日韩在线精品av| 成人网在线免费看| 欧美激情中文字幕在线| 欧美大肥婆大肥bbbbb| 国产精品精品视频一区二区三区| 国产精品999999| 精品久久久久久国产| 美日韩在线视频| 日韩电影中文 亚洲精品乱码| 国产精品一久久香蕉国产线看观看| 日韩在线观看av| 日韩极品精品视频免费观看| 国产视频精品一区二区三区| 成人黄色免费网站在线观看| www.日韩av.com| 亚洲一区二区三区香蕉| 国产精品丝袜白浆摸在线| 日韩成人久久久| 日韩资源在线观看| 九九久久久久久久久激情| 九九久久精品一区| 久久精品亚洲一区| 国内精品久久影院| 亚洲人成亚洲人成在线观看| 国产一区二区三区高清在线观看| 最近2019年手机中文字幕| 在线观看国产精品91| 最近2019中文字幕第三页视频| 亚洲综合精品伊人久久| 亚洲a∨日韩av高清在线观看| 国产精品久久色| 欧美性视频网站| 成人欧美一区二区三区黑人孕妇| 一区二区三区高清国产| 亚洲精品福利资源站| 尤物yw午夜国产精品视频| 91精品久久久久久久久久入口| 精品久久久中文| 亚洲国内精品在线| 欧美精品18videos性欧美| 69久久夜色精品国产69| 国产午夜精品麻豆| 国产精品综合久久久| 国产精品 欧美在线| 日韩视频免费在线观看| 国产一级揄自揄精品视频| 97在线视频精品| 欧美怡红院视频一区二区三区| 欧美日韩在线视频一区二区| 成人xxxxx| 欧美日本高清视频| 精品毛片三在线观看| 欧洲美女7788成人免费视频| 亚洲精品wwww| 欧美黄网免费在线观看| 俺去啦;欧美日韩| 日本老师69xxx| 亚洲国产高清高潮精品美女| 欧美激情综合亚洲一二区| 久久精品久久精品亚洲人| 亚洲美女www午夜| 亚洲精品一区二区在线| www.色综合| 成年人精品视频| 日韩网站免费观看高清| 欧美猛交免费看| 高清一区二区三区日本久| 国产在线精品播放| 97久久国产精品| 91禁外国网站| 国产精品久久久亚洲| 一本大道亚洲视频| 日韩中文字幕国产精品| 91成人在线视频| 久久久久久久国产精品| 色噜噜国产精品视频一区二区| 成人在线观看视频网站| 久久久国产精品亚洲一区| 亚洲精品久久久久久久久久久久| 国产日韩欧美影视| 国产精品在线看| 欧美成年人视频网站欧美| 日本免费一区二区三区视频观看| 日韩综合中文字幕| 国产免费一区二区三区在线观看| 国产成人av网| 69国产精品成人在线播放| 91免费看片网站| 国产成人精品av在线| 色小说视频一区| 国产精品久久久久高潮| 亚洲国产精品资源| 亚洲国产精品久久精品怡红院| 成人有码视频在线播放| 欧美日韩国产成人高清视频| 成人在线视频网站| 国产精品视频内| 国产91在线播放九色快色| 青青草国产精品一区二区| 欧美激情中文字幕在线| 欧美性猛交xxxx乱大交3| 日本一区二区在线播放| 日韩精品中文字幕在线观看| 欧美日韩999| 色噜噜国产精品视频一区二区| 91综合免费在线| 亚洲wwwav| 亚洲免费人成在线视频观看| 久久精品国产亚洲精品2020| 日韩大陆欧美高清视频区| 欧美日韩精品二区| 精品久久久av| 亚洲国产中文字幕在线观看| 欧美在线免费看| 日韩最新av在线| 2020欧美日韩在线视频| 俺去亚洲欧洲欧美日韩| 色综合五月天导航| 亚洲国产精品va在线看黑人| 2021国产精品视频| 国产精品99久久久久久久久| 亚洲精品中文字幕女同| 成人h猎奇视频网站| 欧美三级xxx| 亚洲人成绝费网站色www| 夜夜嗨av色一区二区不卡| 国产精品扒开腿做爽爽爽男男| 91免费精品国偷自产在线| 欧美极品少妇与黑人| 欧美电影免费观看| 亚洲欧美日韩第一区| 欧美韩国理论所午夜片917电影| 欧美色xxxx| 91av视频在线免费观看| 国产精品福利在线观看网址| 亚洲精品影视在线观看| 98精品国产高清在线xxxx天堂| 91精品国产自产91精品| 亚洲在线www| 国产成人鲁鲁免费视频a| 97在线观看视频国产| 美日韩精品视频免费看| 精品视频在线播放色网色视频| 日韩中文综合网| 欧美有码在线观看视频| 国产精品美女久久久久av超清| 亚洲人成在线观看网站高清| 国产精品久久精品| 亚洲爱爱爱爱爱| 日韩高清电影好看的电视剧电影| 57pao精品| 亚洲欧美一区二区激情| 国产精品成人一区二区| 91精品国产综合久久男男| 九九精品在线观看|