EF資料庫遷移工具migration的使用
1、在DbContext類所在專案中新增 EntityFramework引用,可使用nuget新增
2、開啟程式包管理器控制檯(如果看不到程式包管理器控制檯,在選單欄中“其他視窗”中可找到),預設專案要選擇你的DbContext類所在專案,然後輸入命令,啟用資料遷移
enable-migrations
執行後的結果:
A、 啟用遷移之前還沒有建立資料庫
a) 在專案根目錄下建立了一個Migrations資料夾
b) 在Migrations資料夾下新建了一個Configuration.cs檔案。
我們可以通過修改Configuration.cs來對Migration做一些配置(比如在Seed方法中加入一些預定義資料(角色、使用者等)等,以在啟動應用程式時自動將這些預定義的資料新增到資料庫中)
u.Name == adminUser.Name) == null) { context.Users.Add(adminUser); context.SaveChanges(); } } " v:shapes="文字框_x0020_2">
B、 如果啟用資料遷移之前已經建立了一個數據庫
如果啟用資料遷移之前已經自動建立了一個數據庫,則會在Migrations資料夾下新增Configuration.cs、yyyyMMddHHmmsss_InitialCreate.cs兩個檔案,InitialCreate檔案包含了現有資料庫架構的建立和刪除命令
3、在修改了實體資料後,輸入以下命令,更新資料庫
add-migration XXX
XXX 為遷移指定的名稱 比如:InitialCreate 或 AddName
它會生成一個yyyyMMddHHmmsss_XXX.cs的檔案
該命令將根據自建立上次遷移以來對模型所做的更改,為下一次遷移搭建基架
在此時可以對生成的程式碼做一些修改,比如新增唯一索引,不可空列等
update-database [-verbose] [-targetmigration:XXX]
將所有掛起的遷移應用於資料庫
update-database:直接應用於資料庫
-verbose標記,用於以便您能夠看見遷移所執行的 SQL。
-targetmigration 可對資料庫升級或降級到指定版本之後的狀態,若要降級到空資料庫,可使用 update-database -targetmigration: $InitialDatabase 命令。