Je suis sûr que j'ai une bonne compréhension de la façon d'implémenter Repository Pattern, mais je suis coincé dans une boucle de décision concernant les requêtes/méthodes complexes.Modèle de référentiel: Où vont les méthodes complexes?
Si je veux obtenir tous les utilisateurs ou utilisateurs qui ont une certaine valeur de champ sur la table des utilisateurs, il est clair que cela irait dans le référentiel de l'utilisateur. Cependant, que se passe-t-il si j'ai une requête beaucoup plus compliquée, par exemple Tous les utilisateurs qui ont suivi un cours vidéo où le cours vidéo est de ce type? Dans mon modèle, cette requête traverse environ 6 tables.
Je veux être en mesure de nous faire un dépôt pour faire quelque chose comme si (user.completedVideoRequirement), mais j'ai du mal à me convaincre que le référentiel d'utilisateurs est l'endroit pour cela. Cela me semble juste, mais je pourrais en parler assez facilement.
Quelle est la bonne façon?
EDIT: que se passe-t-il si je renvoie des informations autres que des entités de base de données (par exemple, renvoyer true/false ou un autre int). Cela devrait-il arriver au niveau du dépôt, ou devrais-je faire quelque chose comme if (users.CompletedVideoRequirement.Any()) à la place? Je suppose que cela a du sens pour moi d'être toujours sur le référentiel de l'utilisateur, parce que c'est une information sur un utilisateur, mais techniquement, c'est aussi une information sur une vidéo.
Utilisez-vous ef? Si oui, vous devriez avoir un contexte avec toutes les tables du système. Si oui, alors vous pouvez accéder à n'importe quelle table d'un référentiel qui a ce contexte. Quel est le problème avec ça? – cassandrad