指定されたターゲットマイグレーション '201201230637551_migration'は存在しませんか?

StackOverflow https://stackoverflow.com/questions/8968084

質問

EntityFramework 4.3 Betaバージョンとそのデータ移行機能を使用しています。カスタムの移行を生成し、それをDBに適用するためのコードを次のコードを書きました。

MigrationScaffolder ms=new MigrationScaffolder(configuration);
ScaffoldedMigration scaffoldedMigration= ms.Scaffold("Migration");

DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(scaffoldedMigration.MigrationId);
.

足場機能は細かく機能し、正しく移住した。

しかし例外が登場し、

"指定されたターゲットマイグレーション '20120123063751_Migration'はしません 存在します。ターゲットの移行が既存の移行を参照していることを確認してください ID。 "

これはまだこれがベータ版のバージョンから起こりますか?誰かがこれを解決するのを助けます。

ありがとうございました。

役に立ちましたか?

解決

これはあなたがベータ版を使用していたためではありません。MigrationsCaffolderクラスは、構成クラスを生成するためのみです。その生成されたファイルが自動的にソリューションに追加されていません。DBMigrator.Update()メソッドに渡す場合は、最初に生成されたファイルを解決策に追加する必要があります。その後、そのクラスのインスタンスを作成し、そのような更新()メソッドに渡す必要があります。

{
    DbMigrationsConfiguration myConfiguration=new MyConfiguration();
    DbMigrator dbMigrator = new DbMigrator(configuration);
    dbMigrator.Update(myConfiguration);
}
.

ここにMyConfigurationは生成されたクラスです。

さらに、このようにしてプロジェクトに移行を適用する必要はありません。代わりにあなたは使用することができます:

{
    DbMigrationsConfiguration myConfiguration=new DbMigrationsConfiguration(){
       AutomaticMigrationsEnabled = true;
       AutomaticMigrationDataLossAllowed = true;
    }
    DbMigrator dbMigrator = new DbMigrator(configuration);
    dbMigrator.Update(myConfiguration);
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top