ジェネリックリポジトリパターンを使用する場合は、タイプ固有の機能を配置する場所が最適です。ジェネリックリポジトリを使用しているときに 'タイプ'の特定の機能を配置する場所
一般的なRepository<T>
には、GetMany()などのメソッドがありますが、タイプに固有の関数を配置する最も賢明な場所はどこですか?
単純な例として、「User」タイプがあり、ユーザーのファーストネーム/ラストネームを戻してオブジェクトセットが返されたときにそれらを一緒に接着する必要がある関数が必要な場合、 FirstName + " " + LastName
を「Username
」と返すことができます。
私が継承した以前の非リポジトリパターンの実装では、これらの拡張メソッドを提供するためにEFタイプの部分クラスが使用されていましたが、これらのタイプの関数をリポジトリを使用する場所に移動する場所は少し不明です。
すべてのアイデアは、
乾杯、
ダグ下記のリンクではなく、一般的なリポジトリの契約を広げる、選択を指定する方法について説明し
特定の実装が必要な場合は、なぜ汎用リポジトリを使用していますか? – alexn
LINQの 'Select'メソッドでグルーすることができます:' from p in repository.GetMany select new {UserName = p.FirstName + "" + p.LastName}; –
@alexn一般的なリポジトリが遭遇した状況に対応する時間の90%が90日間の別の実装にうまくいかないような「追加」などの基本機能の繰り返しを保存するためです。私たちが持っているエンティティタイプ。 – dougajmcdonald