Utilisation d’un projet de migration distinct
Vous souhaitez peut-être stocker vos migrations dans un projet différent de celui contenant votre DbContext
. Vous pouvez également utiliser cette stratégie pour gérer plusieurs ensembles de migrations, par exemple, l’un pour le développement et un autre pour les mises à niveau de version à version.
Conseil
Vous pouvez afficher cet exemple sur GitHub.
Étapes
Créer un nouveau projet de bibliothèque de classes.
Ajoutez une référence à votre projet DbContext.
Déplacez les migrations et les fichiers de captures instantanées de modèles vers la bibliothèque de classes.
Conseil
Si vous n’avez pas de migrations, générez-en une dans le projet contenant le DbContext, puis déplacez-la. C’est important, car si le projet de migration ne contient pas de migration existante, la commande Add-Migration ne peut pas trouver le DbContext.
Configurez l’assembly de migrations :
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));
Ajoutez une référence à votre projet de migration à partir du projet de démarrage.
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>
Si cela provoque une dépendance circulaire, vous pouvez mettre à jour le chemin de sortie de base du projet de migration à la place :
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
si vous avez fait tout correctement, vous devez être en mesure d’ajouter de nouvelles migrations au projet.
dotnet ef migrations add NewMigration --project WebApplication1.Migrations