移行は、DbContext
を含むプロジェクトとは異なるプロジェクトに格納することをお勧めします。 また、この戦略を使用して、複数の移行セット (開発用に 1 つ、リリースからリリースへのアップグレード用など) を維持することもできます。
ヒント
この記事の サンプルは、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
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET