【问题标题】:Entity Framework VS Ado.net [duplicate]实体框架 VS Ado.net [重复]
【发布时间】:2015-01-31 22:07:20
【问题描述】:

ADO.net 和 Entity Framework 的基本区别是什么?

为什么我们应该使用实体数据模型而不是命令和数据集?

【问题讨论】:

  • 您在比较苹果和橙子 - 实体框架是 ORM,ADO 是用于连接数据库的机制和工具集......不要使用数据集(恕我直言,通常的免责声明非常罕见发生)
  • ADO.net 是更接近数据库的一层。使用类而不是数据集。 EF 是 ORM,如下所述。

标签: c# asp.net .net database vb.net


【解决方案1】:

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

下面是 Entity Framework 的代码,我们在其中处理更高级别的域对象,例如客户,而不是基本级别的 ADO.NET 组件(例如数据集、数据读取器、命令、连接对象等)。

foreach (Customer objCust in obj.Customers)
{}

EF 的主要和唯一的好处是它为模型(中间层)、数据访问层和映射代码自动生成代码,从而减少了大量的开发时间。

here

【讨论】:

    【解决方案2】:

    我认为这个问题有点误导。 Entity Framework 是 ADO.NET 的包装器。因此,这两者在性能上几乎没有区别(也许实体框架有点慢)。你使用什么完全取决于你的喜好。我目前几乎所有与数据库相关的东西都使用 Entity 框架,因为它似乎更简单、更快地获得你需要的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多