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

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

EFCodeFirstMigration總結

2019-11-14 14:17:55
字體:
來源:轉載
供稿:網友

開啟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
日韩av一卡二卡| 日韩天堂在线视频| 亚洲激情在线观看视频免费| 91精品久久久久久久久久久久久| 91精品国产91久久久久福利| 欧美成人免费全部| 久久久久久国产| 亚洲视频国产视频| 97国产一区二区精品久久呦| 久久久久久久久久久免费精品| 亚洲免费视频在线观看| 97在线免费视频| 欧美日产国产成人免费图片| 日本精品久久久久影院| 国产视频精品久久久| 成人免费大片黄在线播放| 亚洲一区二区三区乱码aⅴ| 日韩av在线高清| 日本中文字幕不卡免费| 国内揄拍国内精品| 最近2019年中文视频免费在线观看| 九九热精品视频在线播放| 日韩精品视频免费专区在线播放| 欧美成人第一页| 色综合91久久精品中文字幕| 亚洲综合av影视| 精品国产户外野外| 欧美韩日一区二区| 精品亚洲一区二区三区| 国产精品福利小视频| 91国内免费在线视频| 亚洲理论片在线观看| 97超碰色婷婷| 久久91精品国产| 欧美在线日韩在线| 亚洲自拍偷拍第一页| 国内外成人免费激情在线视频| 国产欧美日韩专区发布| 久久精品视频导航| 久久久亚洲网站| 亚洲第一网站男人都懂| 日韩在线视频观看正片免费网站| 国产98色在线| 中文字幕亚洲激情| 亚洲伊人久久大香线蕉av| 欧美性猛交xxxx黑人| 伊人久久久久久久久久久久久| 欧美激情亚洲视频| 久久久精品999| 在线色欧美三级视频| 欧美日韩在线一区| 欧美色播在线播放| 最近2019中文字幕一页二页| 91成人在线播放| 国产成人啪精品视频免费网| 自拍亚洲一区欧美另类| 欧美在线视频在线播放完整版免费观看| 91亚洲精品久久久久久久久久久久| 国产欧美亚洲视频| 国产精品情侣自拍| 午夜精品福利在线观看| 亚洲jizzjizz日本少妇| 91极品女神在线| 视频在线观看一区二区| 在线看片第一页欧美| 精品呦交小u女在线| 欧美成人高清视频| 午夜精品久久久久久久99热浪潮| 欧美午夜精品久久久久久久| 国产香蕉97碰碰久久人人| 亚洲国产精品va在看黑人| 欧美在线精品免播放器视频| 国产亚洲激情视频在线| 8x拔播拔播x8国产精品| 国产一区二区色| 欧美性xxxx极品高清hd直播| 国产99在线|中文| 欧美日韩国产精品一区| 国产在线观看91精品一区| 国产欧美日韩专区发布| 亚洲变态欧美另类捆绑| 欧美日韩国产123| 欧美极品在线视频| 色综合久久悠悠| 国产精品视频免费在线观看| 成人精品一区二区三区电影黑人| 欧美日韩xxxxx| 中文字幕在线看视频国产欧美在线看完整| 欧美精品videossex88| 亚洲美女在线观看| 日韩美女中文字幕| 亚洲另类欧美自拍| 日韩欧美国产高清91| 欧美三级免费观看| 亚洲人成网7777777国产| 97在线视频免费观看| 久久精品国产久精国产一老狼| 亚洲欧洲免费视频| 亚洲欧美综合精品久久成人| 91热福利电影| 国产日韩欧美成人| 亚洲一区二区三区成人在线视频精品| 色综合色综合网色综合| 国产精品最新在线观看| 亚洲综合中文字幕在线| www.欧美三级电影.com| 成人午夜激情免费视频| 2019中文字幕在线观看| 亚洲国产黄色片| 亚洲精品视频免费在线观看| 日韩av网站大全| 青青在线视频一区二区三区| 欧美成人一区在线| 在线视频精品一| 亚洲无限av看| 欧美乱大交xxxxx| 在线中文字幕日韩| 精品精品国产国产自在线| 国产日韩在线亚洲字幕中文| 欧美贵妇videos办公室| www.色综合| 国产精品视频资源| 欧美午夜影院在线视频| 国产经典一区二区| 91色视频在线导航| 91精品国产91久久久久福利| 中文字幕久久精品| 欧洲午夜精品久久久| 亚洲精品欧美日韩| 按摩亚洲人久久| 久久久国产视频| 欧美激情18p| 成人免费观看49www在线观看| 成人中文字幕+乱码+中文字幕| 青草热久免费精品视频| 成人免费xxxxx在线观看| 色偷偷偷亚洲综合网另类| 欧美中文在线观看| 国产亚洲欧洲高清一区| 欧美精品福利在线| 国产精品av网站| 亚洲美腿欧美激情另类| 黑人巨大精品欧美一区二区免费| 国产精品美女久久久免费| 最近2019年好看中文字幕视频| 欧美国产一区二区三区| 国产精品夜色7777狼人| 国产极品jizzhd欧美| 国产精品成人久久久久| 亚洲成人av在线播放| 日韩av手机在线观看| 欧美高清第一页| 久久中国妇女中文字幕| www亚洲精品| 欧美日韩国产限制| 精品国产欧美一区二区五十路| 欧美黑人性生活视频| 欧美日韩免费网站| 亚洲xxxx视频| 日韩中文在线中文网三级| 亚洲成年人在线播放| 中国china体内裑精亚洲片| 欧美精品18videos性欧美| 欧美日韩国产成人|