質問: 私は、Entity Frameworkでaspnetコアデータベースを更新するために標準的な追加マイグレーション手法を使用してきました。ここで、2つの「イメージ」列を新しい表(およびそのイメージ・データ)に移動し、元の表から列を削除し、古い表と新しい表の間に外部キー関係を設定する必要があります。私はこれをすべて行うためのSQLスクリプトを用意しています。 **このSQLスクリプトを通常のEF移行の一部として実行するにはどうすればよいですか?そして、後続の追加移行の変更に、SQLスクリプトが行う変更(新しいテーブル/列の追加、元のテーブルからの画像列の削除)** 私はSqlFileへの参照とDbMigrationからの派生をいくつか参照しましたが、私のシナリオにうまく収まらないものはありません。私はEFコア、aspnetコア2.0を使用しています。
回答: 作成した移行クラス( `Up`および`Down`メソッド)を編集して、適切な場所に任意のSQLを含めることができます。 ``` protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn( name: "MyExtraColumn", table: "MySuperTable"); migrationBuilder.Sql("DROP DATABASE [master]"); // <<< Anything you want :) migrationBuilder.DropColumn( name: "MyExtraColumn2", table: "MySuperTable"); } ``` EntityFrameworkの観点から、データベーススキーマを「中断」しないで、信頼できる`Down`スクリプトを提供して、複数回アップ/ダウン/マイグレーションを移行できるようにするのはあなたの責任です。 また、移行を削除して再追加する場合は、SQLを再追加することを忘れないでください。