1

ある構造から別のデータ構造にデータを転送するユーティリティを開発しています。このユーティリティは、Entity-Frameworkによって制御されるSQlサーバーデータベースに格納されます。シードする前にデータベースをリセットする方法

私がターゲットデータベースモデルを変更するたびに、以下を実行しています。

  1. ターゲットデータベースからのデータの削除。
  2. ID値をリセットするために各テーブル(多くのテーブル)で "dbcc checkident(" table "、reseed)"を実行します。
  3. http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspxを読んだ後、私は2つの選択肢があると思い

「をアップデート - データベース」を使用してデータベースを再シード。私は自分のイニシャライザーを動かしたいとは思わない。

最初のオプションは、開発中にdrop create戦略の1つを使用することです(dropCreateifmodelChanges、またはDropCreateAlways)Drop Createプロセスは既存のターゲットデータを削除し、Identityカウンタを再シードしますか?

2番目のオプションは何らかの形で削除を含めることで、シード関数にIDをリセットします。これはできますか?もしそうなら - どのように?

もっと良い選択肢はありますか?誰にもアドバイスはありますか?

+0

あなたの2つのオプションが動作します – TheGameiswar

+0

また、ターゲットデータベース内のすべてのテーブルに対してtruncateを使用することを検討する必要があります:http://stackoverflow.com/questions/15220411/entity-framework-delete-all-rows-in-table –

答えて

1

私にも同じような状況がありました。私はあなたが言及した手動の方法を選択しました.B'cosにより、私は自動メソッドをより詳細に制御できました。

しかし、あなたlike.Yesは、それが新鮮database.Thatを作成する場合は、DropCreateDatabaseAlways戦略を使用することができますが、すべてのPK値がreseeded.Youあなたはdevの環境上のアプリを開発しているだけで、この戦略を使用することができますことを意味します。

関連する問題