1

新しいデータベースを変更すると、アプリケーションが新しいデータベースを検出せず、エラーを取得するという問題

データベースが作成されてから、'DBContext' コンテキストをサポートするモデルが変更されました。Code First Migrations を使用してデータベースを更新することを検討してください ( http://go.microsoft.com/fwlink/?LinkId=238269 )。

しかし、移行を使用していないため、パッケージ マネージャー コンソールでデータベースを更新しません。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

最初にコードと mvc を使い始めたときに、この問題に遭遇しました。以下の答えは完全に正しいですが、ASP.net Web サイトにアクセスして、コード ファーストの移行に関するチュートリアルを実行する必要があります。データベースの更新と初期化と移行がどのように機能するかをよりよく理解する必要があります。

于 2013-10-17T20:40:14.677 に答える
0

実際には、データベースの変更を検出します。データベースはモデルとは異なります。エラーメッセージ。

このエラーは、移行履歴テーブルに保存されているハッシュが計算されたハッシュと一致しない場合にスローされます。(__MigrationHistory テーブルを見てください。システム テーブルの下にある可能性があります)

このテーブルを削除すると、チェックは基本的に無効になります。Database.SetInitializer<YourContextType>(null)アプリケーションのスタートアップに追加することで、同様のことを実現できます。後者は、そのアプリケーション内からのデータベース作成を無効にするため、コードでデータベースを作成する場合は、別のアプリケーション (コンソール アプリなど) からこれを行う必要があります。Web アプリケーションでは、この方法を好みます。

次に、データベースを手動で変更する場合 (列の変更、テーブルの追加など)、モデルを調整する必要があります。したがって、DDL ステートメントごとに、コードを変更してください。

最初にコードを使用していない場合は、デザイナーで既存のモデルを更新できます。

于 2013-10-17T19:54:21.167 に答える