Domanda

Nei miei repository, sto eseguendo delle assegnazioni ai miei oggetti di dominio dalle query di Entità Linq. Ho quindi un livello di servizio per agire su questi oggetti restituiti dai repository.

I miei oggetti Domain dovrebbero essere nel repository in questo modo? O i miei repository dovrebbero essere limitati alle Entità e all'accesso ai dati e il mio livello di servizio dovrebbe invece fare assegnazioni agli oggetti del dominio?

Eseguire tutte le assegnazioni nel repository sembra più semplice, ma ora la distinzione tra il mio database e gli oggetti di dominio non è evidente. Qual è la pratica corretta qui? tia

È stato utile?

Soluzione

IMO se l'app è relativamente semplice e non puoi immaginare di strappare l'accesso ai dati vai avanti e fai le assegnazioni nel repository. Ma se pensi che l'app diventerà più complicata in futuro o che potresti voler cambiare l'accesso ai dati, mantieni questa funzionalità fuori dai repository.

Ho realizzato app con assegnazione nei repository e altre nel livello di servizio e un'altra ancora avevo un livello di conversione separato (non era una conversione uno a uno e gli oggetti erano complessi).

Una cosa da ricordare sulle migliori pratiche, lì per aiutarti, se rende le cose più difficili, allora non usarle.

Altri suggerimenti

Non mi piaceva. Ma ora di solito non guardo mai indietro. Fondamentalmente il fatto è che se è necessario passare a un'origine dati esterna strutturata in modo diverso, è possibile impostare una nuova mappatura insieme all'implementazione del codice repository e procedere con esso.

Riguarda la mappatura dei dati. Controlla questo link: http://www.martinfowler.com/eaaCatalog/repository.html

Controlla anche questa domanda correlata: Confusione IRository su oggetti restituiti . Ho usato un mappatore simile, ma l'ho reso operativo a livello di IQueryable, che ha reso in grado di fare alcune cose piuttosto interessanti lavorando con l'oggetto dominio dopo la mappatura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top