1

EF 4.3でEdmMetadataテーブルを削除すると、DropCreateDatabaseIfModelChangesが機能しなくなったようです。しますか?

また

EF 4.2のSEEDメソッドのように初期化子を宣言する方法はありますか?

4

1 に答える 1

3

EdmMetadataEF 4.3 Code Firstモデルでは廃止され、代わりに_MigrationHistoryテーブルを使用してモデルとデータベース間の互換性をチェックします。

(_MigrationHistoryテーブルは、可能であればシステムテーブルになっていることに注意してください。これを表示するには、SQL Management Studioまたは任意のツールで「システムテーブル」を展開する必要がある場合があります。)

EF 4.3では、DbContextがCode Firstアプローチで使用される場合、Database.CreateCode First Migrationsを使用してデータベースを作成し、DDLを実行しようとします。Database.Create最初の自動移行を実行します。このプロセスの一部として、移行によりと呼ばれるテーブルが作成_MigrationHistoryされ、コードファーストモデルの圧縮バージョンを含む行がこのテーブルに挿入されます。また、DropCreateDatabaseIfModelChanges初期化子は、このメソッドを使用して、 _MigrationHistoryテーブルDatabase.CompatibleWithModelをチェックすることにより、CodeFirstモデルがデータベースの作成に使用されたモデルと一致するかどうかを判断します。

http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata-table/

于 2012-04-09T11:55:26.840 に答える