2010-02-08 13 views
5

Quando si lavora su un repository cerco generalmente di mantenere il metodo abbastanza generico, ma a volte questo può portare a chiamare metodi più lunghi o a creare metodi con nomi più specifici nel livello di servizio. La mia domanda è: quanta conoscenza del tuo dominio dovrebbe avere il tuo livello residente?Quanta conoscenza del tuo dominio dovrebbe avere il tuo livello di repository?

Per esempio, Al momento ho un metodo come segue:

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

che io uso per tirare indietro gli utenti con un ruolo e proprietà specifica, ma vorrebbe essere dando il repository troppa conoscenza di avere un metodo come ad esempio:

risposta

2

Dovrebbe avere abbastanza conoscenza per fare il suo lavoro e non di più. Va bene avere una ricerca per artisti di slug se "slug" è un attributo del record "artista", perché il livello lo sa già. Se l'assegnazione di lumache agli artisti segue regole complesse e complesse (pensa l'araldica, o qualcosa del genere), allora il repository non dovrebbe implementarle, eccetto se devi assolutamente usare intelligenti ottimizzazioni che funzionano solo a questo livello, ad es. costruzioni di query speciali per database.

Problemi correlati