2010-02-08 3 views
5

Lorsque je travaille sur un référentiel, j'essaie généralement de garder la méthode assez générique, mais cela peut parfois conduire à appeler des méthodes plus longues, ou à créer des méthodes plus spécifiquement nommées au niveau de la couche de service. Ma question est, combien de connaissances de votre domaine devrait avoir une couche Resitory?Quelle quantité de connaissances de votre domaine devrait avoir votre couche de dépôt?

Par exemple, j'ai actuellement une méthode comme suit:

public User GetUniqueByRoleAndRoleProperty<TRole>(string propertyName, object propertyValue) 
    { 
     ... 
    } 

que j'utilise pour retirer les utilisateurs avec un rôle spécifique et des biens, mais serait-il donner le dépôt trop de connaissances pour avoir une méthode tel que:

public User GetArtistBySlug(string slug) 
{ 
    ... 
} 

Répondre

2

Il devrait avoir assez de connaissances pour faire son travail et pas plus. C'est bien d'avoir une recherche d'artistes par slug si "slug" est un attribut de l'enregistrement "artist", car la couche le sait déjà. Si l'assignation de limaces à des artistes suit des règles complexes et complexes (pensez à l'héraldique, ou quelque chose comme ça), alors le référentiel ne devrait pas les implémenter, sauf si vous devez absolument utiliser des optimisations intelligentes qui fonctionnent uniquement à ce niveau. constructions de requête de base de données spéciales.

Questions connexes