Dela via


Använda ett separat migreringsprojekt

Du kanske vill lagra dina migreringar i ett annat projekt än det som innehåller din DbContext. Du kan också använda den här strategin för att underhålla flera uppsättningar migreringar, till exempel en för utveckling och en annan för versionsuppgraderingar.

Tips/Råd

Du kan visa den här artikelns exempel på GitHub.

Steg

  1. Skapa ett nytt klassbibliotek.

  2. Lägg till en referens till ditt DbContext-projekt.

  3. Flytta migreringarna och modellögonblicksfilerna till klassbiblioteket.

    Tips/Råd

    Om du inte har några befintliga migreringar genererar du en i projektet som innehåller DbContext och flyttar den. Det här är viktigt eftersom om migreringsprojektet inte innehåller någon befintlig migrering kan kommandot Add-Migration inte hitta DbContext.

  4. Konfigurera migreringssammansättningen:

    services.AddDbContext<ApplicationDbContext>(
        options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"),
                x => x.MigrationsAssembly("WebApplication1.Migrations")));
    
  5. Lägg till en referens till migreringsprojektet från startprojektet .

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

    Om detta orsakar ett cirkulärt beroende kan du uppdatera basutdatasökvägen för migreringsprojektet i stället:

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

Om du gjorde allt korrekt bör du kunna lägga till nya migreringar i projektet.

dotnet ef migrations add NewMigration --project WebApplication1.Migrations