Domanda

Come implementare il modello di Repository withe LinqToEntities come implementare l'interfaccia

È stato utile?

Soluzione

Io faccio il seguente:

Un livello di servizio contiene il mio business objects.È passato il repository tramite un'Inversione del Controllo (il Castello di Windor è la mia solita scelta).Il repository è responsabile della corrispondenza tra gli oggetti di business e la mia entity framework oggetti.

Vantaggi:Non hai problemi con lo stato degli oggetti o il contesto di EF oggetti perché sono appena caricamento durante la manipolazione dei dati in archivio.Questo facilita la situazione quando si passa a WCF/Web-Services.

Gli svantaggi:Si sta perdendo alcune delle funzionalità di tracciamento di Entity Framework, è necessario caricare manualmente i dati oggetto (ef oggetti), eventualmente se necessario manualmente per la concorrenza ottimistica controlla (tramite un timestamp del business object per esempio).

Ma in generale io preferisco questa soluzione, perché è possibile modificare in seguito il repository.Mi permette di avere diversi repository (ad esempio, il mio oggetto utente è in realtà utilizzando la ASPNetAuthenticationRepository invece di EntityFrameworkRepository), ma per il mio livello di servizio è trasparente.

Per quanto riguarda l'interfaccia, vorrei utilizzare il business objects dal livello di servizio come parametro di oggetti e non lasciare che quelle EF oggetti del repository livello.Speranza che aiuta

Altri suggerimenti

Ive quasi come questo, tranne per il "Castello di Windor" roba.Guarda openticket.codeplex.com

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