Seguire MSDN
Altre volte, si consiglia di scrivere il proprio specifico dell'applicazione Unità dell'interfaccia lavoro o di classe che avvolge l'unità interna del Lavoro dal vostro strumento persistenza. Puoi farlo per una serie di motivi. È possibile che desideri aggiungere la registrazione, la traccia o la gestione degli errori specifici alla gestione delle transazioni. Forse si desidera incapsulare le specifiche degli strumenti di persistenza dal resto dell'applicazione . Potresti volere questo incapsulamento extra per semplificare lo scambio delle tecnologie di persistenza in seguito, . Oppure potresti voler promuovere la testabilità nel tuo sistema. Molte delle implementazioni integrate di Work of Work da strumenti di persistenza comuni sono difficili da gestire con scenari di test automatici dell'unità.
Torna alle tue domande.
Devo utilizzare DbContext e DbSet direttamente o dovrebbero esserci i miei propri repository ?
In effetti, non c'è alcun problema quando si inseriscono DbContext
e DbSet
nei repository. Ci chiederemo da soli vorremmo testare più facilmente o meno. Se vogliamo progettare un framework che collauda tutto, non dobbiamo usare DbContext
e DbSet
direttamente nel vostro Repositories
. Dovremmo usare l'interfaccia IDbContextFactory
che è usata per fornire DbContext
, solo i miei due centesimi.
Per avere più viste sull'archivio, è possibile prendere riferimento al seguente collegamento per considerare le opzioni tra repository e DbContext
.
http://huyrua.wordpress.com/2010/07/13/entity-framework-4-poco-repository-and-specification-pattern/
C'è qualche problema se si usa il DbContext
direttamente?
No, non c'è alcun problema se si utilizza DbContext
direttamente. Ma incasinerà molte regole di business e un sacco di problemi di scala come database centralizzato, difficile da testare e violare separatamente le preoccupazioni nel principio di progettazione.
E se passassi da MS SQL a Oracle in futuro?
In realtà, non c'è alcun problema quando si passa da MS SQL a Oracle in futuro. Devi solo cambiare fornitore di dati seguendo il link sottostante quando usi DbContext
di Entity Framework.
http://www.devart.com/news/2008/directs475.html
o MS Entity Framework Oracle Provider
fonte
2013-05-03 04:02:33