0

私はEntityFrameworkでモデルファーストアプローチを研究しています。モデルからデータベースが再生成されるたびに、すべてのデータが消去されることがわかりました。モデルファーストは本当に便利なアプローチですか、それともこれを修正する方法がありますか

4

4 に答える 4

2

Model first は、データを自動的に削除しません。データベース作成用の SQL スクリプトを作成し、それを実行すると、おそらくすべてのテーブルが削除されますが、スクリプトを手動で変更するか、データベース アップグレード用の高度なツールを使用できます。

于 2011-11-11T09:19:16.910 に答える
1

Entity Frameworkはデータベースを削除し、最初から再作成します。それはまさにそれが機能する方法です。Microsoftは、変更を移行できる移行戦略に取り組んでいますが、次のメジャーバージョンまで準備はできていません。

この問題を解決しようとするサードパーティのツールがいくつかありますが、私はそれらにあまり依存していません。

于 2011-11-11T06:13:08.737 に答える
0

モデルを更新して自動生成された SQL スクリプトを実行するたびに、データベースを手動でシードしてデータを取り戻すことができます。モデル ファーストではシード処理がコード ファーストと同じように機能しないため、よく話題に上る便利な DropAndCreateDatabaseIfModelChanges アプローチはうまく機能しません。最も簡単な回避策は、自分自身を初期化して手動でシードすることです。

var db = new MyDbContext();
db.Database.Initialize(true);
于 2013-04-10T19:07:24.157 に答える
0

この問題に対処する方法の 1 つは、データをシードすることです。つまり、EF がデータベースを作成した後に、いくつかのテスト データをデータベースに入力します。http://binuity.com/blog/2011/03/28/ef4-seeding-data-on-each-dropcreatedatabaseifmodelchanges/を参照してください。

さらに別の方法は、データベースを再作成するのではなく、データベースを更新しようとするツールを用意することです。

于 2011-11-11T05:13:14.140 に答える