-repository
データベースからデータを取得するために、接尾辞が付いた一連の個別のクラスを使用しています。各テーブルごとに独自のリポジトリ。
たとえば、customerrepository
顧客を取得するためのあらゆる種類のメソッドを持つクラスと、vacancyrepository
空席を取得するためのあらゆる種類のメソッドを持つクラスがあります。
このことを行う方法について2つの質問があります。
複数のテーブルにまたがるデータを取得するのはどうですか?たとえば、私はまだ空席を作成していないすべての顧客を表示する画面を持っています。の
customerrepository
メソッドを使用できますか、vacancyrespository
両方のリポジトリが結果を返すdataservice
ことができますか?両方のリポジトリから結果を取得して1つの結果に結合する階層の上位にクラスを付けますか?そのようなリポジトリはどのくらいのロジックを処理できますか?
リポジトリに「where active == true」を実装してアクティブなレコードのみを取得してもよいと思いますか、またはその単純なロジックでさえ、階層の上位のクラスで処理する必要があります(名前を付けましょうdataservice
)?
私が今遭遇した例はこれです:
1つ以上の質問を含む質問リストがあります。
質問には結果があり、別のテーブルに保持されます。
したがって、質問リストの合計結果を取得するには、questionlist
テーブル、質問テーブル、およびテーブルのデータを結合する必要がありquestionstatus
ます。
現在、これらのテーブルには3つの異なるリポジトリがあります。
questionlistrepository
リスト番号12の合計結果を尋ねると、他の2つのリポジトリからデータを取得する必要があり、そのため何らかのロジックが必要になります。
またはquestionlistdataservice
、使用するリポジトリを知っているものはありますか?
もう1つ:リポジトリは結果を生成できるIQueryable
ため、呼び出し元のサービスは結果を簡単に結合できますが、そうでない場合は、3つのテーブルすべてのコンテンツをすべて取得することは良い考えではないと思いますデータベース。