0

私は、Webフォームをほぼ6年以上使用した後、asp.netの知識を広げようとしているMVCに非常に慣れていません。

MVC は今のところ私にとって非常に抽象的ですが、私が気に入っているのは、使用されているクリーンなコーディングです。「Pro ASP.NET MVC 3 Framework」の本を読んでいますが、ある時点で立ち往生しており、正直に続ける方法がわかりません。

これが私が得ているエラーです:

データベースが作成されてから、「EfDbContext」コンテキストをサポートするモデルが変更されました。Code First Migrations を使用してデータベースを更新することを検討してください。

これは、1 つの製品を更新しようとした後に発生します。ページは投稿されましたが、DB では何も更新されませんでした。

Web を閲覧すると、この一時的な解決策が見つかりました。この行を global.asax ファイルに入れると問題Database.SetInitializer<SportsStore.Domain.Concrete.EFDbContext>(null); が解決しました。

これを修正するために正確に何をする必要があるかを知りたいです。

4

2 に答える 2

0

移行について説明しているブログや記事がオンラインにたくさんあります。次の2つのリンクを参照として使用します。つまり、モデルを変更しましたが、データベース内のテーブルはまだ更新されていません。データベース内のテーブルを削除して、EFにテーブルの再作成を許可するか、モデルへの変更を元に戻すか、(MVC 4のみ?)「移行」を実行することができます。 SQLスクリプトを作成して、モデルの現在のバージョンと一致するようにSQLテーブルを更新します。

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

http://coding.abel.nu/2012/03/ef-migrations-command-reference/

于 2012-09-04T14:48:08.883 に答える
0

最初にコードを使用すると、データベースにはクラスの変更を追跡するためのチェックサムテーブル(と呼ばれるEdmMetaData)があり、エラーはEntityFrameworkがそのような変更を検出したことを示しています。手動で処理する場合は、上記のテーブルを削除し、データベースを手動で更新してクラスの仕様に準拠させてください。

もう1つの方法は、前述のように、フレームワークに変更されたテーブルを削除して再作成させる方法です。

詳細な説明とデモについては、 Pluralsightビデオチュートリアルの第4章を参照してください。

于 2012-09-04T14:50:03.280 に答える