0

ASP.NET MVC 4プロジェクトで新しい移行を使用しており、移行/構成ファイル内に次のものがあります。

public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            AutomaticMigrationDataLossAllowed = false;
        }

同じファイルファイルに、データベースにデータを入力するSeedメソッドもあります。モデルが変更されていなくても、アプリを実行するたびにデータベースが再シードされることに気付きました。global.asaxファイル内で、Application_Startに次のデータベース初期化子があります

Database.SetInitializer(new MigrateDatabaseToLatestVersion<UtilitiesContext, Migrations.Configuration>());

モデルが変更された場合、またはUpdate-Databaseコマンドを実行した場合にのみ、データベースをシードする必要があります。どうすればいいですか?

4

2 に答える 2

0

実際、イニシャライザステートメントをまとめて削除したところ、機能しました。

于 2012-08-08T14:57:06.180 に答える
0

DropCreateDatabaseIfModelChangesはどうですか?このMSDNの記事を参照してください。これは、データベースがモデルと異なる場合にのみ再シードされます。

使用法:

 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<UtilitiesContext>());
于 2012-08-04T00:26:05.810 に答える