Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Mogelijk wilt u uw migraties opslaan in een ander project dan dat waarin uw DbContext is opgenomen. Dit wordt aanbevolen als uw project gebruikmaakt van een platformspecifiek projecttype, zoals WinUI, Xamarin, MAUI, Blazor of Azure Functions, of als het gericht is op een specifieke runtime-id (RID). 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.
Tip
U kunt de sample van dit artikel bekijken op GitHub.
Steps
Maak een nieuwe klassebibliotheek.
Voeg een verwijzing toe naar uw DbContext-project.
Verplaats de migratie- en modelmomentopname-bestanden naar de klasse-bibliotheek.
Tip
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.
Configureer de migratieassembly:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));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
Tip
Als uw toepassing gebruikmaakt van afhankelijkheidsinjectie, kunt u overwegen om te implementeren IDesignTimeDbContextFactory<TContext> in uw migratieproject. Hierdoor kunnen de EF-hulpprogramma's uw DbContext maken zonder dat u het opstartproject hoeft uit te voeren. Voor meer informatie, zie ontwerptijdfabriek.