エンティティ フレームワーク (v4.4) コンテキストの接続文字列を動的に変更しようとすると、次のエラーが発生します。
System.AccessViolationException が処理されませんでした
メッセージ: 保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。
エラーの原因となるコードは次のようなものです (名前を変更しました)。
private Project1.Data.Context _db;
public ConstructorMethod(string connectionString ="")
{
_db = new Project1.Data.Context();
_db.Database.Connection.ConnectionString = connectionString;
}
データアクセスメソッドを保持するのはDAOクラスであり、コンストラクターで接続文字列を渡したいのですが、何らかの理由でそれを機能させることができません。コンストラクターを介して接続文字列を渡すことを実現する他の方法はありますか?
このエラーに関するこのサイトのすべての投稿は、EF とは無関係のようです。
編集 最小限のコードで別のプロジェクトを試すとき。次のエラーが発生しました:
サポートされていないキーワード: 'メタデータ'
それが私が以下に投稿している解決策を見つけることにつながりました。MVC 4 アプリケーションで動作しているように見えるので、なぜこれが起こったのか知りたいです。