Web サイト プロジェクトにASP.NET MVCを使用することに決め、書かれているいくつかのベスト プラクティスに従いたいと考えています。
そのため、ドメイン/モデルを別のプロジェクトに分離し、IRepositories と具体的なリポジトリを作成し、 IoCとしてCastle Windsorに注目しました。
私が今直面している問題は、特定のコントローラーの場合、コンストラクターで複数の IRepository パラメーターを渡す必要があることです。
私の質問は次のとおりです。
- おそらく作成したリポジトリが多すぎたのでしょうか。通常、1 つのリポジトリを 1 つのエンティティ クラスに 1 つのデータベース テーブルにマップします。私のリポジトリには、実質的に複数のエンティティ/データベース テーブルを含める必要がありますか?
- IoC と Dependency Injection の要点を見逃していましたか? params が Controller コンストラクターにどのように渡されるかを気にする必要はありませんか?
ある種の文脈を与えるために。Web サイトの一部には、物件の種類(城、家、パブなど)、場所(郵便番号、都市)、営業時間などで検索可能な物件の Google マップが表示されます。したがって、これらの検索可能なコンポーネントはすべて、PropertyType、Address という個別のエンティティです。都市、Address.Postcode.Lat+Long、OpeningTime.DateTime. したがって、SearchController コンストラクターに渡す必要がある 3 つの別個のリポジトリーもあります。
これは単純な例ですが、将来的にはさらに多くのリポジトリ パラメータが他のコントローラに渡されることを想定できます。
これがすべて理にかなっていることを願っています。
回答やアドバイスをありがとう。