Share via


Een afzonderlijk migratieproject gebruiken

Mogelijk wilt u uw migraties opslaan in een ander project dan dat waarin uw DbContext is opgenomen. U kunt deze strategie ook gebruiken om meerdere sets migraties te onderhouden, bijvoorbeeld een voor ontwikkeling en een andere voor upgrades voor release-naar-release.

Stappen

  1. Maak een nieuwe klassebibliotheek.

  2. Voeg een verwijzing toe naar uw DbContext-project.

  3. Verplaats de migratie- en modelmomentopname-bestanden naar de klasse-bibliotheek.

    Aanbeveling

    Als u geen bestaande migraties hebt, genereert u er een in het project met dbContext en verplaatst u deze. Dit is belangrijk omdat als het migratieproject geen bestaande migratie bevat, de opdracht Add-Migration de DbContext niet kan vinden.

  4. Configureer de migratieassembly:

    services.AddDbContext<ApplicationDbContext>(
        options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"),
                x => x.MigrationsAssembly("WebApplication1.Migrations")));
    
  5. Voeg een verwijzing toe naar uw migratieproject vanuit het opstartproject .

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

    Als dit een kringafhankelijkheid veroorzaakt, kunt u in plaats daarvan het basisuitvoerpad van het migratieproject bijwerken:

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

Als u alles goed hebt gedaan, moet u nieuwe migraties aan het project kunnen toevoegen.

dotnet ef migrations add NewMigration --project WebApplication1.Migrations