だから私はEntityFramework4.3の移行を始めたいと思います。既存のデータベースを移行対応データベースに変換できるかどうかを知りたいのですが、EFに、それ以降の変更のみを移行と見なす必要があると想定させました。
3 に答える
したがって、私が探していたのは、AutomaticMigrationsEnabled=falseを設定するとアクティブになるコードベースの移行であるようです。私のモデルは既存のデータベースから生成されました。移行をアクティブ化するために必要なのは、移行を有効にし(Enable-Migrations)、Add-Migrationを使用して新しい新しい移行ファイルを作成し、それを空にすることだけでした(私のモデルはすでにデータベースにあるので、EFに試してもらいたくありませんそれらを作成し、それを展開します。デプロイするために、Global.asaxファイルに以下を追加しました。
protected void Application_Start()
{
var config= new Configuration();
var migrator = new DbMigrator(config);
migrator.Update();
}
新しいテーブル__MigrationHistoryが作成され、その中に新しい移行レコードが作成されました。この新しい移行レコードにはモデルのハッシュが含まれていたため、EFを使用した将来の移行で、モデルへの変更をスクリプト化できるようになりました。
テストするために、別の移行ファイル(Add-Migration)を作成し、モデルに新しいプロパティを追加し、Add-Migrationsを実行して、新しいフィールドのスクリプトを作成してから、アプリケーションをデプロイしました。移行は期待どおりに実行されました。
このための優れたウォークスルーは、ここに投稿されています:http: //thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/
私が提案する1つの変更は、移行をデプロイするまで、UpメソッドとDownメソッドのコードをコメントアウトすることです。その後、コードのコメントを解除すると、後で必要になった場合に新しいデータベースを作成できるようになります。
Add-Migration -IgnoreChanges
https://msdn.microsoft.com/en-us/data/dn579398.aspxを参照してください