エンティティ フレームワークを使用するプログラムがあり、実行されているコンピューターに応じて、ネットワーク経由でリモート データベースに接続するか、ローカル ファイルシステム上のローカル データベースに接続します。
エンティティ フレームワークでは、MyDbContext (エンティティ フレームワークの DbContext から継承) のインスタンスを作成すると、コードの最初の命名規則が使用され、app.config/web.config で同じ名前 (id) の接続文字列が検索されます。クラス - すなわち.. MyDbContact。通常、これは非常に便利な規則ですが、私の特定の使用例には適していません。
アプリケーションがロードされ、クエリが実行される前に、名前付き接続文字列を好みの文字列に設定したいと考えています。つまり、リモート データベースまたはローカル データベースの接続文字列です。
その後、MyDbContext の今後のすべてのインスタンスは、カスタム接続文字列を自動的に取得します。
web/app.config で接続文字列をハードコードする必要はありません。
このプログラムは IoC/依存性注入に大きく依存しており、ドメイン駆動設計とリポジトリ + サービス パターンを使用しています。また、リゾルバーに登録するときに各リポジトリに渡すパラメーターとして接続文字列を指定する必要もありません (オートファク)。
エンティティ フレームワークのどこかに、web.config から接続文字列を取得するというこのコード ファースト規則を傍受し、代わりにカスタム文字列を渡す場所が必要であることは、私には論理的に思えます。
私は道を外れていますか、それとも実行時にデフォルトの接続文字列を実際に変更する方法はありますか?