Avis de non-responsabilité: Je suis assez nouveau à DDD et à sa terminologie associée, donc si j'étiquette les concepts, veuillez me corriger.Un référentiel doit-il être responsable de "l'aplatissement" d'un domaine?
Je travaille actuellement sur un site avec un modèle de domaine relativement simple (articles de catalogue, chacun stocke une collection d'objets CatalogImage.)
Mon référentiel suit l'interface standard de FindbyID(int ID)
GetAll()
etc ...
Le problème se pose lorsque vous essayez de trouver une image particulière par son ID; Je finis avec des méthodes telles que FindImagebyID(int CatalogItemID, int ImgID)
Comme nouveaux requirments se développent, et le graphe d'objet devient plus fortement imbriquées, je pouvais voir une explosion de méthodes telles que Find{NestedType}ByID(int catalogItemID,.....,int nestedTypeID)
Au cas où je rentrais simplement un IEnumerable du FindAll() méthode, et en utilisant Linq dans une couche supérieure pour former ces requêtes? Ou est-ce que ce sera une violation de SoC?
En fait, je suis d'accord avec votre réponse, je me demande simplement si l'entité/le modèle est simplement grand? – CSharpAtl
J'aime l'approche générale, mais comment la méthode FindByID de CatalogImageRepository connaitrait-elle l'élément de catalogue auquel l'image est associée? – gn22
@CSharpAtl Je ne suis pas sûr si c'est une question de la taille du modèle. Je pense que c'est plus une question de comment le PO prévoit d'interroger le DAL. Si cela va toujours être interrogé de la même manière (c'est-à-dire FindById, etc.), alors je pense qu'il va bien continuer son chemin. Cependant, s'il commence à aller dans le sens de l'interrogation dynamique, je pense que l'implémentation de la commande de requête de séparation pourrait être une meilleure solution, mais la conception entière devrait être modifiée dans ce cas. – Joseph