Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kanske vill lagra dina migreringar i ett annat projekt än det som innehåller din DbContext. Detta rekommenderas om ditt projekt använder en plattformsspecifik projekttyp, till exempel WinUI, Xamarin, MAUI, Blazor eller Azure Functions, eller om det riktar sig mot en specifik körningsidentifierare (RID). 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.
Tip
Du kan visa den här artikelns sampling på GitHub.
Steps
Skapa ett nytt klassbibliotek.
Lägg till en referens till ditt DbContext-projekt.
Flytta migreringarna och modellögonblicksfilerna till klassbiblioteket.
Tip
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.
Konfigurera migreringssammansättningen:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));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
Tip
Om ditt program använder beroendeinmatning kan du överväga att implementera IDesignTimeDbContextFactory<TContext> i migreringsprojektet. På så sätt kan EF-verktygen skapa dina DbContext utan att behöva köra startprojektet. Mer information finns i Från en design-tidsfabrik.