一 介紹
在使用 Entity Framework Core (下面就叫 EF Core 吧)進(jìn)行開發(fā)時(shí),如果模型有變動(dòng),我們要在用 EF Core 提供的命令行工具進(jìn)行手工遷移,然后再運(yùn)行程序。但是為了效率,我想能不能在程序的入口處進(jìn)行 Migration 呢?從個(gè)人經(jīng)驗(yàn)來說應(yīng)該是可以,因?yàn)?EF Tool 雖然提供了 CLI 但是它最終也是被程序解析這些命令。下面就開始分析,如何通過代碼進(jìn)行 Migration 。
二 分析
首先我們要先了解,在使用 EF Core 的 CLI 時(shí),要執(zhí)行兩個(gè)步驟:
第一步:生成 Migration 文件;
第二步:更新變更項(xiàng)到數(shù)據(jù)庫;
既然是先生成 Migration 文件再更新,那么在 EF Core 里面一定有對(duì)應(yīng)的模塊做這件事情。下面我們看一下 EF Core 項(xiàng)目的結(jié)構(gòu)。從中我們確實(shí)找到關(guān)于 Migration 的模塊。在 Migrations/Design 目錄的類名稱上我們可以看出來,它就是生成 Migration 文件的。這里先到這兒。
找到了生成 Migration 文件的入口,我們?cè)賮碚乙幌氯绾瓮ㄟ^代碼將這些變更更新到數(shù)據(jù)庫中。