2013-02-13 11 views
17

Da MSDN:Qual è la differenza tra DbContext e ObjectContext

rappresenta una combinazione dei modelli di unità di lavoro e repository e vi permette di interrogare un database e raggruppare le modifiche che saranno poi riscritte il negozio come unità. DbContext è concettualmente simile a ObjectContext.

I sebbene DbContext gestisca solo la connessione al DB e il numero di thread che lavorano contro il DB.

Ora ho capito che contiene il meccanismo di tracciamento? Pensavo che fosse nello ObjectContext.

Allora, qual è (in inglese) la differenza tra loro?

risposta

21

DbContext è una versione leggera della classe ObjectContext, che è posizionata quasi sopra ObjectContext (c'è anche un modo per arrivare a ObjectContext dal solo DbContext). È anche molto più facile da usare, IMO e rende le operazioni CRUD un peccato.

Per maggiori informazioni, chi meglio guardare a Julie Lerman per maggiori informazioni sulle differenze, come è stato portato in EF 4.1.

+0

controllo questo [articolo] (http:.//www.c-sharpcorner.com/UploadFile/ff2f08/objectcontext-vs-dbcontext/) per altro – stom

5

DbContext è un'API più piccola che espone le funzioni più comunemente utilizzate di ObjectContext. In alcuni casi, tali funzioni sono speculari nell'API DbContext . In altri casi, il team Entity Framework ha semplificato la codifica più complessa fornendo metodi come Trova o proprietà come DbSet.Local. Ma c'è una grande API in agguato sotto la quale potrebbe ancora essere necessario l'accesso. Ad esempio, è possibile che desideri lavorare direttamente con MetadataWorkspace per scrivere codice generico contro le classi poiché tale API può leggere il modello in modo più efficiente rispetto al riflesso. Inoltre, il MetadataWorkspace è in grado di fornire ulteriori informazioni sui metadati rispetto a quello che è possibile rilevare con la riflessione , ad esempio, per le proprietà chiave. Oppure si potrebbe desiderare di sfruttare una funzione specifica del database che viene esposta tramite Entity SQL, a cui non è possibile accedere da LINQ alle entità. Oppure si può già avere un'applicazione scritta utilizzando l'ObjectContext e si desidera sfruttare il DbContext nei futuri aggiornamenti senza sostituire tutto il codice ObjectContext (Riferimento dalla programmazione DbContext)

Problemi correlati