これについては既にStack Overflowに関する多くの質問がありますが、これは少し異なると思います。データベースが作成されて以来、 'ServicesContext'コンテキストをサポートするモデルが変更されました
4つの異なる環境を複製する4つの異なるサーバー上に4つのデータベースをセットアップしました。サンドボックス、テスト、ユーザー受け入れテスト、およびLive。これらの4つの環境は主に同じスキーマをサポートしていますが、それぞれの環境(主にサンドボックスと他の環境との間にいくつかの違いがあります。
1つのWebアプリケーションからEntity Frameworkを使用して4つのすべての環境にアクセスできる必要があります。現在、これはTest、UAT、Liveにアクセスする際に完全に機能します。それは私が次のエラーを取得サンドボックスに来るとき、残念ながら:
System.InvalidOperationException: 'The model backing the 'ServicesContext' context has changed since the database was created.
を私は、データベースが期待されているものと異なっているので、私はこのエラーを取得していますが、私はEFが無視し得る方法があるかもしれません期待していた理解しますこれらの変更は、私がアクセスしようとしている部分だけがすべて同じであるためです。
これまで考えていた唯一の選択肢は、各データベースをEFで個別にインポートすることですが、基本的に各環境のコードをコピーする必要があるため、これを行う必要はありません。 (少なくとも、私はそれが私がしなければならないことを見ることができますか?)
個人的には、変更することはできません、システム構造やデータベーススキーマの、残念なことにそれはオプションではありません。
ご協力いただければ幸いです。
Database.SetInitializer<ServicesContext>(null);
私はEFコンテキストクラスのコンストラクタでこれを置く:次のようにやっても問題が解決したコメントにstuartdで述べたように
エラーが発生しないように、起動時に 'Database.SetInitializer(null); 'を呼び出すことができると思います。 –
stuartd
そのトリックをしたようです。ありがとうございました! – MultiJ