使用個別移轉專案

您可能想要將移轉儲存在與包含 您 DbContext 的專案不同的專案中。 您也可以使用此策略來維護多個移轉集,例如,一組用於開發,另一組用於發行對發行升級。

提示

您可以檢視本文中的 GitHut 範例

步驟

  1. 建立新的類別庫。

  2. 新增 DbCoNtext 專案的參考。

  3. 將移轉和模型快照集檔案移至類別庫。

    提示

    如果您沒有現有的移轉,請在包含 DbCoNtext 的專案中產生一個移轉,然後移動它。 這很重要,因為如果移轉專案不包含現有的移轉,Add-Migration 命令將無法找到 DbCoNtext。

  4. 設定移轉元件:

    services.AddDbContext<ApplicationDbContext>(
        options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"),
                x => x.MigrationsAssembly("WebApplication1.Migrations")));
    
  5. 啟動 專案新增移轉專案的參考。

    <ItemGroup>
      <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" />
    </ItemGroup>
    

    如果這會導致迴圈相依性,您可以改為更新移轉 專案的基底輸出路徑

    <PropertyGroup>
      <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath>
    </PropertyGroup>
    

如果您已正確執行所有作業,您應該能夠將新的移轉新增至專案。

dotnet ef migrations add NewMigration --project WebApplication1.Migrations