2014-12-03 511 views
5

ADO.net和實體框架之間的基本區別是什麼?實體框架VS Ado.net

爲什麼我們應該使用實體數據模型而不是命令和數據集?

+1

你比較蘋果和桔子 - 實體框架是一個ORM,ADO是一種機制,以及用於連接到數據庫的工具集...不使用的數據集(恕我直言,與常規免責聲明非常少見發生) – Liath 2014-12-03 11:27:24

+1

ADO.net是一個更接近數據庫的層。使用類而不是數據集。 EF是ORM,如下所述。 – JoshYates1980 2017-10-31 15:22:18

回答

5

ADO.NET實體是一個ORM(對象關係映射),它通過ADO.NET組件創建更高的抽象對象模型。因此,而不是進入數據集,數據表,命令和連接對象,如圖下面的代碼,你喜歡上的客戶,供應商更高級別的域對象的工作,等

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

下面是對實體框架的代碼我們正在研究像客戶這樣的更高級的域對象,而不是基礎級的ADO.NET組件(如數據集,數據讀取器,命令,連接對象等)。

foreach (Customer objCust in obj.Customers) 
{} 

主要和EF的唯一的好處是對於模型(中間層),數據訪問層,和映射碼它自動生成代碼,從而減少了大量的開發時間。

here

1

我認爲這個問題有點誤導。實體框架是ADO.NET的封裝。因此,這兩者在性能上幾乎沒有區別(也許實體框架有點慢)。你使用什麼取決於你的偏好。我目前使用Entity框架幾乎所有與數據庫相關的東西,因爲它看起來更簡單,更快速地得到你需要的東西。