实体框架 - 概述

什么是 Entity Framework?

Entity Framework 于 2008 年首次发布,是 Microsoft 在 .NET 应用程序和关系数据库之间进行交互的主要方式。 Entity Framework 是一个对象关系映射器 (ORM),它是一种工具,可简化软件中对象与关系数据库的表和列之间的映射。

  • Entity Framework (EF) 是 ADO.NET 的开源 ORM 框架,是 .NET Framework 的一部分。

  • ORM 负责创建数据库连接和执行命令,以及获取查询结果并自动将这些结果具体化为您的应用程序对象。

  • ORM 还有助于跟踪这些对象的更改,并且在收到指示时,它还会将这些更改保存回数据库。

为什么选择 Entity Framework?

Entity Framework 是一个 ORM,ORM 旨在通过减少持久化应用程序中使用的数据的冗余任务来提高开发人员的工作效率。

  • Entity Framework 可以生成在数据库中读取或写入数据所需的数据库命令并为您执行它们。

  • 如果您正在查询,则可以使用 LINQ to entities 表达针对域对象的查询。

  • Entity Framework 将在数据库中执行相关查询,然后将结果具体化为域对象的实例,以便您在应用中使用。

市场上还有其他 ORM,例如 NHibernate 和 LLBLGen Pro。大多数 ORM 通常将域类型直接映射到数据库架构。

典型 ORM

Entity Framework 具有更细粒度的映射层,因此您可以自定义映射,例如,通过将单个实体映射到多个数据库表,甚至将多个实体映射到单个表。

EF Runtime Metadata
  • Entity Framework 是 Microsoft 推荐的新应用程序数据访问技术。

  • ADO.NET 似乎直接引用数据集和数据表的技术。

  • Entity Framework 是所有向前投资的地方,这种情况已经持续了很多年了。

  • Microsoft 建议您使用 Entity所有新开发都基于 ADO.NET 或 LINQ to SQL 框架。

概念模型

对于习惯于以数据库为中心的开发的开发人员,Entity Framework 最大的变化是它让您专注于您的业务领域。您希望您的应用程序做什么,而不受数据库功能的限制?

  • 使用 Entity Framework,焦点称为概念模型。它是应用程序中对象的模型,而不是用于保存应用程序数据的数据库模型。

  • 您的概念模型可能恰好与您的数据库架构一致,也可能完全不同。

  • 您可以使用可视化设计器来定义概念模型,然后可以生成最终将在应用程序中使用的类。

  • 您只需定义类并使用 Entity Framework 的一项名为 Code First 的功能即可。然后 Entity Framework 将理解概念模型。

概念模型

无论哪种方式,Entity Framework 都会找出如何从概念模型转移到数据库。因此,您可以查询概念模型对象并直接使用它们。

功能

以下是 Entity Framework 的基本功能。此列表是根据最显著的功能以及有关 Entity Framework 的常见问题创建的。

  • Entity Framework 是 Microsoft 的工具。
  • Entity Framework 正在作为开源产品进行开发。
  • Entity Framework 不再与 .NET 发布周期绑定或依赖。
  • 可与具有有效 Entity Framework 提供程序的任何关系数据库配合使用。
  • 从 LINQ to Entities 生成 SQL 命令。
  • Entity Framework 将创建参数化查询。
  • 跟踪对内存中对象的更改。
  • 允许插入、更新和删除命令生成。
  • 可与可视化模型或您自己的类配合使用。
  • Entity Framework 具有存储过程支持。