你可能想要将迁移存储在包含你的 DbContext
项目以外的项目中。 还可以使用此策略来维护多个迁移集合,例如,一个用于开发,另一个用于版本升级。
小窍门
可以在 GitHub 上查看本文的示例。
步骤
创建新的类库。
为 DbContext 项目添加引用。
将迁移和模型快照文件移动到类库。
小窍门
如果没有现有迁移,请在包含 DbContext 的项目中生成一个迁移,然后移动它。 这一点很重要,因为如果迁移项目不包含现有迁移,Add-Migration 命令将无法找到 DbContext。
配置迁移程序集:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));
从 启动 项目添加对迁移项目的引用。
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>
如果这会导致循环依赖项,可以改为更新 迁移 项目的基本输出路径:
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
如果所有步骤都正确执行,您应该能够向项目添加新迁移。
dotnet ef migrations add NewMigration --project WebApplication1.Migrations