2016-11-28 18 views
0

MVCでEntity Frameworkを使用してモデルの最初のアプローチでプロジェクトを開発しています。数日後、既存のモデルにいくつかのプロパティを追加する必要がありました。私はそれが私に次のエラーを与えたソリューションを構築しようとしたとき、後:それは結構働いているが、どのようにエンティティフレームワークは、内の既存のデータを保持しないEF MVCでデータベースを削除して再作成した後に既存のデータを維持する方法

Database.SetInitializer<ClubmansGuideDB>(new DropCreateDatabaseIfModelChanges<ClubmansGuideDB>()); 

Model has changed.

をので、私はそれが一つの解決策を見つけたググ特定のモデル関連テーブル?誰かが説明できますか?

+0

を行いますあなたは、すべてのデータが失われます、あなたは、[移行]を使用する必要があります(https://msdn.microsoft .com/en-us/library/jj591621(v = 117).aspx)アプローチ。 – 3615

+0

データベースを削除して再作成した後でも、既存のデータを取得できます。良い説明で私にお勧めします。 – Surya

+0

シードが設定されていると起こる可能性があります。したがって、静的データが再び導入されますが、1つの新しいレコードを追加する場合は、永続化しないでください。 – 3615

答えて

0

この初期化を使用するのではなく、モデルに追加したいくつかのプロパティを持つデータベースのみを変更するスクリプトを生成するDB移行を使用してください。パッケージマネージャ 2 - ファイル名を指定して実行Enable-Migrationsコマンド 、3-実行Add-Migration Initialコマンドを取得し、これはコードへと移行を追加するツールメニュー - >ニューから

の1-オープンNuGetパッケージマネージャコンソール:

あなたはこれを行うことができますこれが初めての場合はデータベース全体を作成してください。 4-マイグレーション済みの場合は、add-migration -Name somename を実行してください。update-database -scriptコマンドを実行すると、データベースを変更するデータベーススクリプトが生成されます。

は、ステップ#5でスクリプトを使用して、データベースに対してそれを実行し、それだけで必要な修正

+0

私は移行プロセスを知っています。しかし、データベースを削除して再作成した後に、データがどのように維持されているかを知りたいと思います。 – Surya

+0

移行は削除されず、データベースを作成しません。データベースを変更するスクリプトが生成されます。例:列の追加、列の削除... 現在使用しているデータベースイニシャライザのみが削除され、データベース –

+0

が作成されますデータを取得し、上記のステートメントを使用してデータを更新します。質問は、Entity Frameworkがデータベースを削除して再作成する場合のデータの保持方法です。 – Surya

関連する問題