Sto seguendo prima l'approccio del database; Ho creato le tabelle nel mio database SQL Server 2008, quindi mappo tali tabelle alle classi Entity Framework utilizzando un modello di dati Entity ADO.NET. Ma quando ho aperto il file designer.cs ho trovato il seguente codice nella definizione di classe che è stato creato automaticamente:Perché Entity Framework utilizza automaticamente ObjectContext invece di DbContext quando si mappano le tabelle di database utilizzando la datamodel Entity ADO.NET
public partial class PortalEntities : ObjectContext
così ho seguenti tre domanda che ottenere il mio confuso:
Perché la mia classe
PortalEntities
deriva daObjectContext
e non daDbContext
come mi aspettavo?C'è una grande differenza tra
ObjectContext
&DbContext
, o sono essenzialmente la stessa e offrono che stesse funzionalitàQuando provo a scrivere la qualcosa di simile al seguente codice:
Student student = db.Students.Find(id);
Ho scoperto che non è possibile utilizzare il metodo .Find()
come facevo prima usando DbContext
, quindi ciò significa che ObjectContext
& DbContext
hanno metodi diversi che posso usare?
BR
grazie per la vostra risposta; ma trar vantaggio dall'uso di DbContext invece di ObjectContext nel mio database apprach prima? –
DbContext ha un'interfaccia semplificata. Sarà più facile da usare e, se necessario, potrai sempre lanciarlo su un ObjectContext. Anche il DbContext è più facile da deridere per scopi di test unitari. –
Chiara spiegazione! Grazie – GibboK