Nuget Package Manager の MVCScaffolding を使用し、その仕組みに関する簡単なチュートリアルに従いました。それは十分に単純に思えます。実行
Scaffold Controller Team –Repository -Force
すると、「チーム」を取り巻くすべてのリポジトリ パターンが作成されます。
ただし、これを打破する試み (および成功) として、「チーム」クラス ( ) に追加のフィールドを追加することにしましたmyRandomField
。予想通り、コンパイルすると、MVC ビューで次のようなエラーが発生しました。
データベースが作成されてから、「MvcApplication1Context」コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializer インスタンスで Database.SetInitializer を呼び出します。たとえば、DropCreateDatabaseIfModelChanges 戦略は、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。
明らかに、このエラーは、モデルを更新したため (Code-first??)、DB がモデルと「同期していない」ためです。
この問題を回避する最善の方法は何ですか? モデルと DB を同期させる簡単な方法はありますか?開始しているプロジェクトが徐々に展開されるため、モデルに多くの編集を行う予定です (そのため、毎回完全なデータベースの再構築を行うことは問題外です)。この場合、コードファーストは私にとって正しいアプローチですか? 私はこのプラグイン/ツールが本当に好きで、それを使わないのは残念です.