現在、Windows サービスと MVC アプリに Unity を使用していますが、問題なく動作しています。Web リクエストごとに ChildContainer を作成し、DbContext インジェクションを階層として定義するため、各 Web リクエストにはコンテキストの独自のインスタンスがあります。また、EF 設定がすべてのコンテキストで一貫していることを確認する BaseDbContext クラスもあります。
ここまでは順調ですね。ここでの問題は、2 つ目のデータベースを追加することです。したがって、BaseDbContext からも継承する 2 つ目のコンテキストが追加されます。
基本クラスが同じであるため、異なるコンテキストを挿入するように Unity を構成することはできません。
私たちが見つけた解決策は、T : BaseDbContext である ContextProviderを作成し、それを Unity に登録することでした。これにより、タイプによってコンテキストを区別できます。
ただし、Unity はこのシナリオを処理できるはずなので、これは正しくないようです。
この問題を処理するための提案されたアプローチは何ですか?
ありがとう。