質問: 私は自分のMVCアプリケーションを使用して、奇妙なグラウンドホッグのシナリオに入ってきました。 回避策を適用しない限り(この質問の後半)、アプリケーションをデバッグするたびにこのエラーが表示されます。 > データベースが作成されてから、 'UsersContext'コンテキストをサポートするモデルが変更されました。コードの最初の移行を使用してデータベースを更新することを検討してください ( )。 > > ***私はモデルを変更していない。*** 私の回避策のワークフローは次のとおりです。 1. 移行の追加WHATEVERNAME(空の移行を行います) 2. この移行を削除します。 3. 実行:更新データベース 4. 再コンパイルと実行(エラーなし) ノート: * スクリプトとデータベースの両方で最新の移行一致の__MigrationHistoryハッシュを実行します。 * 私はMVCアプリケーションとEFプロジェクトを別々のプロジェクトとして持っています。 * これを適用することで問題が緩和されるかどうかを確認するため、IgnoreChanges移行を作成しようとしました。それはしませんでした。 これは非常にイライラしていますが、どうすればこの問題を永久に解決できますか? **注:**私のシナリオでは、自動移行は適切ではありません。
回答: さて、はるかに詳細を知らなくても何が間違っているのかを理解することはほとんど不可能です。だから私ができることは、あなたが試すことができるものの手がかりを与えることです。 1. アプリを停止して再起動しても、DBが期限切れになってはいけません。それはデバッグ時のみですか?あなたはデバッグせずにアプリを実行しようとしましたか?次に、アプリケーションプールをリサイクルし、アプリを再実行します。 2. あなたの "bin"フォルダにいくつかのDLLを上書きする奇妙なポストビルドステップがありますか? 3. あなたのアプリはデータベーススキーマを変更する何かをしているので、次回起動時にそれを無効にしていますか? SQLプロファイラを実行して、アプリケーションの起動時にDBに何が起きているかを確認します。 4. スキーマの最初のバージョンに戻してから、もう一度戻って**ください** ( **まずDBをバックアップしてください** )。 `update-database -TargetMigration:0 -verbose` 次に `update-database -verbose` 5. 一時的に原因を特定しようとアプリの大部分をコメントアウトしてください。 6. 同じ方法でEFを設定してブランドの新しいアプリを作成し、接続文字列をコピーして、それが起こるかどうか確認します。そうでなければ、何か異なるものがなければならない。はいの場合は、EF設定を表示してください。 うまくいけば、少なくともここにあなたにアイデアを与えることができる何かがあります。がんばろう!