學習ASP.NET Core Blazor編程系列四——遷移

學習ASP.NET Core Blazor編程系列一——綜述學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程序(上)學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程序(中)學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程序(下)
學習ASP.NET Core Blazor編程系列二——第一個Blazor應用程序(完)學習ASP.NET Core Blazor編程系列三——實體在具體的實際項目中,數據實體類隨著應用程序的功能的變化而變化:添加和刪除新的實體或屬性 , 并且需要相應地去修改數據庫的表或架構,使其與應用程序中的實體保持同步 。EF Core中的遷移功能能夠以遞增方式更新數據庫架構或表,使其與應用程序的數據實體類保持同步,同時保留數據庫中的現有數據 。
簡要地說,遷移的方式如下:

  • 當項目中的數據實體類有了變改時,開發人員使用 EF Core 工具添加相應的遷移 , 以使數據庫架構同項目中的數據實體類保持同步 。EF Core 將當前數據實體類與舊的數據實體類進行快照比對,以確定差異,并生成遷移源文件;遷移源文件可在項目的源代碼管理中進行跟蹤,如同其他任何源文件 。
  • 生成新的遷移源文件后,可通過多種方式將其應用于數據庫 。EF Core 在一個特殊的歷史記錄表中記錄所有的遷移操作,使其知道哪些遷移已執行,哪些遷移尚未執行 。
 
一、創建腳本工具并執行初始遷移
在本篇文章中,我們來學習如何使用包管理控制臺(PMC)來對數據庫進行更新:
? 執行Add-Migration Initial生成代碼文件 。
? 執行Update-Database命名 , 更新數據庫 。
  1. 從菜單中選擇“工具àNuGet包管理器器—>程序包管理器控制臺”菜單 。
    學習ASP.NET Core Blazor編程系列四——遷移

    文章插圖
2. 在PMC中,輸入以下命令: Add-Migration Initial 。會提示如下錯誤“Add-Migration : 無法將“Add-Migration”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱 。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次 。” 。如下圖 。
學習ASP.NET Core Blazor編程系列四——遷移

文章插圖
【學習ASP.NET Core Blazor編程系列四——遷移】3. 以上錯誤信息,說明我們缺少相應的包 , 在本文中主要用到以下三個包:Microsoft.EntityFrameworkCore.SqlServer (適用于EF Core SQLServer 提供程序,這個包我們在前面的文章中已經安裝了 。)Microsoft.EntityFrameworkCore.Design(適用于EF Core .NET CoreCLI 工具)Microsoft.EntityFrameworkCore.Tools(適用于 EF Core 的包管理器控制臺工具)
4.使用VisualStudio NuGet 包管理器控制臺安裝,在PMC中,輸入以下命令:
Install-Package Microsoft.EntityFrameworkCore.ToolsInstall-Package Microsoft.EntityFrameworkCore.Design
5.上面的命令執行完畢之后,Nuget會自動安裝我們所指定的包,如下圖中紅框所示 。然后我們在PMC中輸入 Add-Migration Initial 。如下圖 。
學習ASP.NET Core Blazor編程系列四——遷移

文章插圖
6. 在上面的命令執行完畢之后 , 會在項目中增加Migrations目錄和用于創建初始數據庫的代碼,如下圖 。這些代碼是基于DbContext指定的模型(在Models/ BookCntext.cs) 。初始參數用于命名遷移 。您可以修改成任何名稱 , 但按慣例您可以選擇描述遷移的名稱 。
學習ASP.NET Core Blazor編程系列四——遷移

文章插圖
7. 在上面的命令執行完畢之后,輸入Update-Database,這個命令通過運行

    推薦閱讀