私はリポジトリパターンの実装方法をよく理解しているとは思いますが、複雑なクエリ/メソッドに関する決定ループに苦しんでいます。リポジトリパターン:複雑なメソッドはどこに行きますか?
ユーザーテーブルに特定のフィールド値を持つすべてのユーザーまたはユーザーを取得する場合は、ユーザーリポジトリに入ることは明らかです。しかし、ビデオコースがこのようなタイプのビデオコースを完了したすべてのユーザーなど、もっと複雑なクエリがあるとどうなりますか?私のモデルでは、このクエリは約6つのテーブルを横断します。
if(user.completedVideoRequirement)のようなことをするリポジトリを私たちにできるようにしたいのですが、私はユーザリポジトリがこれのための場所であると自信を持っています。それは私には正しいようですが、私はそれをかなり簡単に論じることができます。
正しい方法はありますか?
EDIT:データベースエンティティ以外の情報を返す場合(true/falseなどのintを返す場合)はどうなりますか?リポジトリレベルでもこれを行う必要がありますか?if(users.CompletedVideoRequirement.Any())のようにしてください。 これはユーザーリポジトリに残っているのは当然ですが、ユーザーに関する情報ですが、技術的にはビデオに関する情報でもあるためです。
あなたはefを使用していますか?はいの場合は、システム内のすべてのテーブルを持つコンテキストが必要です。はいの場合、そのコンテキストを持つ1つのリポジトリから任意のテーブルにアクセスできます。何が問題なの? – cassandrad