2014-12-03 6 views
5

Jaka jest podstawowa różnica między ADO.net i Entity Framework?Entity Framework VS Ado.net

Dlaczego powinniśmy używać modelu danych jednostki zamiast komend i zestawów danych?

+1

Ty porównywanie jabłek i pomarańczy - Entity Framework jest ORM, ADO jest mechanizmem i zestaw narzędzi do łączenia się z bazą danych ... nie używać zestawów danych (IMHO ze zwykłymi zastrzeżeniom bardzo rzadkich wystąpienia) – Liath

+1

ADO.net to warstwa bliżej bazy danych. Użyj klas zamiast zbiorów danych. EF to ORM, jak wspomniano poniżej. – JoshYates1980

Odpowiedz

5

Obiekt ADO.NET to ORM (odwzorowanie relacyjne obiektów), który tworzy wyższy abstrakcyjny model obiektowy na komponentach ADO.NET. Więc zamiast się do zbioru danych, DataTables, polecenie, a obiekty połączeń, jak pokazano w poniższym kodzie, pracujesz na obiektach domen wyższego szczebla, jak klientów, dostawców itp

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"]; 
} 

Poniżej znajduje się kod dla Entity Framework w w którym pracujemy na obiektach domeny wyższego poziomu, takich jak klient, a nie na podstawowych komponentach ADO.NET (takich jak zestaw danych, dataresader, polecenie, obiekty połączeń itp.).

foreach (Customer objCust in obj.Customers) 
{} 

Główną i jedyną korzyścią z EF jest automatycznie generuje kod dla modelu (warstwa środkowa), Data Access Layer i mapowanie kodu, zmniejszając w ten sposób dużo czasu rozwoju.

here

1

Myślę, że to pytanie wprowadza w błąd. Entity Framework to opakowanie dla ADO.NET. Tak więc nie ma prawie żadnej różnicy między tymi dwoma w wydajności (być może struktura encji jest nieco wolniejsza). To, czego używasz, zależy całkowicie od twoich preferencji. Im obecnie korzystam z Entity framework dla prawie wszystkiego związanego z bazą danych, ponieważ wydaje się znacznie prostsze i szybsze uzyskanie tego, czego potrzebujesz.