質問

エンティティフレームワークv4.1でコードファーストパターンを使用しています。本当に奇妙に見える私が出会ったことの1つは、モデルに変更を加えるたびに、データベースがドロップされて新しく作成されることです。データベースをドロップして再作成するたびに理想的な解決策ではないため、これは非常に乱雑です。私のすべてのテストデータとすべてが失われます。 Seedという名前の方法があることを知っています。テストデータレコードを挿入してそこに挿入できます。ただし、テストレコードの数が数匹いる可能性があり、すべてのレコードをSEEDメソッドに配置することは実行できません。これに代わるものはありますか?コードファーストはまったく使用していませんでしたが、プロジェクトで使用することは必須です。

役に立ちましたか?

解決

いいえ、現在、他の方法はありません。EF自体は、おそらくドロップ /再作成以外のものをサポートすることはありません。 ADO.NETチームが選んだ方法は、データベースアップグレードに呼ばれる個別のツールを使用することです 移行. 。現在、移行はCTP =実際の使用法ではなく、EFチームへのフィードバックのテストと収集に適しているためにのみ利用可能です。

回避策として、外部のデータ母集団スクリプトを使用してシードから呼び出すことができます。メンテナンスははるかに簡単になります。

他のヒント

EFを設定して、データベースがまだ存在しない場合にのみ変更しようとすることができます。

Database.SetInitializer<YourDataContext>(new CreateDatabaseIfNotExists<YourDataContext>());
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top