別の移行プロジェクトを使用する
移行を、DbContext
を含むものとは別のプロジェクトに保存できます。 また、この方法を使用して複数の移行セット (たとえば、1 つを開発用、もう 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