これは、質問hereのフォローアップです。回答は、過度に複雑で過度に具体的であると思われます (EF、私は使用していません - ORM を使用していません)。
その答えでほのめかされた煙、鏡、魔法よりも、この一般的なシナリオを回避するより簡単な方法が必要です.
注: 私は EF を使用していないため、"context" を括弧で囲みました。つまり、ここで話しているのは文字通りの "dbcontext" ではありません。
だから私は疑問に思いました: ユーザーが認証および承認されているときに、各セッションにグローバル変数を設定できますか?
たとえば、ユーザーが認証/承認されると、どのデータベース コンテキスト/コンテンツをユーザーに提供する必要があるかがわかります。
したがって、Global.asax.cs の Application_Start() メソッドに値を設定してから、RepositoriesInstaller (IWindsorInstaller を実装する) クラスを変更して、ユーザーとユーザーが持つべきデータに基づいて異なる具体的なリポジトリを条件付きで登録するか、条件付きコードを配置することができるようです。具体的なリポジトリ自体で、これまたはそのデータベースインスタンスを使用します。
これは実現可能ですか?1 つの方法 (RepositoriesInstaller を変更する/具体的な Repositories クラスを変更する) が優先されますか?