2014-12-03 164 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框架几乎所有与数据库相关的东西,因为它看起来更简单,更快速地得到你需要的东西。