Uso de un proyecto de migraciones independientes
Es posible que quiera almacenar las migraciones en un proyecto diferente al que contiene DbContext
. También puede usar esta estrategia para mantener varios conjuntos de migraciones, por ejemplo, uno para el desarrollo y otro para las actualizaciones de versión a versión.
Sugerencia
Puede ver un ejemplo de este artículo en GitHub.
Pasos
Cree una nueva biblioteca de clases.
Agregue una referencia al proyecto DbContext.
Mueva las migraciones y los archivos de instantánea del modelo a la biblioteca de clases.
Sugerencia
Si no tiene migraciones existentes, genere una en el proyecto que contenga DbContext y muévala. Esto es importante porque si el proyecto de migraciones no contiene una migración existente, el comando Add-Migration no podrá encontrar DbContext.
Configure el ensamblado de migraciones:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));
Agregue una referencia al proyecto de migraciones desde el proyecto de inicio.
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>
Si esto provoca una dependencia circular, puede actualizar la ruta de acceso de salida base del proyecto de migraciones en su lugar:
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
Si lo hizo correctamente, debería poder agregar nuevas migraciones al proyecto.
dotnet ef migrations add NewMigration --project WebApplication1.Migrations