2014-12-03 25 views
5

Qual è la differenza fondamentale tra ADO.net e Entity Framework?Entity Framework VS Ado.net

Perché dovremmo utilizzare il modello di dati di entità anziché i comandi e i set di dati?

+1

si sta confrontando mele e arance - Entity Framework è un ORM, ADO è un meccanismo e un insieme di strumenti per la connessione al database ... non utilizzare i set di dati (IMHO con dinieghi usuali molto rari occorrenze) – Liath

+1

ADO.net è un livello più vicino al database. Utilizzare le classi anziché i set di dati. EF è ORM come indicato di seguito. – JoshYates1980

risposta

5

L'entità ADO.NET è un ORM (object relational mapping) che crea un modello di oggetto astratto più elevato rispetto ai componenti ADO.NET. Quindi, piuttosto che entrare in set di dati, DataTable, comandi e oggetti di connessione, come mostrato nel seguente codice, si lavora su oggetti di dominio di livello superiore, come clienti, fornitori, ecc

DataTable table = adoDs.Tables[0]; 
for (int j = 0; j < table.Rows.Count; j++) 
{ 
    DataRow row = table.Rows[j]; 

    // Get the values of the fields 
    string CustomerName = 
     (string)row["Customername"]; 
    string CustomerCode = 
     (string)row["CustomerCode"]; 
} 

Di seguito è il codice per Entity Framework in che stiamo lavorando su oggetti di dominio di livello superiore come il cliente piuttosto che con componenti ADO.NET di livello base (come set di dati, datareader, comando, oggetti di connessione, ecc.).

foreach (Customer objCust in obj.Customers) 
{} 

Il principale e l'unico vantaggio di EF è esso genera automaticamente il codice per il modello (strato intermedio), Data Access Layer, e il codice di mappatura, riducendo in tal modo un sacco di tempo di sviluppo.

here

1

Penso che la domanda sia un po 'fuorviante. Entity Framework è un wrapper per ADO.NET. Quindi non c'è quasi nessuna differenza tra questi due in termini di prestazioni (forse il framework di entità è un po 'più lento). Quello che usi dipende totalmente dalle tue preferenze. Al momento sto utilizzando Entity Framework per quasi tutto ciò che riguarda il database perché sembra molto più semplice e veloce ottenere ciò di cui hai bisogno.

Problemi correlati