EF 4.3でEdmMetadataテーブルを削除すると、DropCreateDatabaseIfModelChangesが機能しなくなったようです。しますか?
また
EF 4.2のSEEDメソッドのように初期化子を宣言する方法はありますか?
EF 4.3でEdmMetadataテーブルを削除すると、DropCreateDatabaseIfModelChangesが機能しなくなったようです。しますか?
また
EF 4.2のSEEDメソッドのように初期化子を宣言する方法はありますか?
EdmMetadata
EF 4.3 Code Firstモデルでは廃止され、代わりに_MigrationHistory
テーブルを使用してモデルとデータベース間の互換性をチェックします。
(_MigrationHistoryテーブルは、可能であればシステムテーブルになっていることに注意してください。これを表示するには、SQL Management Studioまたは任意のツールで「システムテーブル」を展開する必要がある場合があります。)
EF 4.3では、DbContextがCode Firstアプローチで使用される場合、Database.Create
Code 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/