ADO.NET和ADO.NET Entity Framework
ADO.NET 3.0 用于访问和操作数据的两个主要组件是 .NET Framework 数据提供程序和 DataSet。
.NET Framework 数据提供程序
.NET Framework 数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。Connection 对象提供到数据源的连接。使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 可从数据源提供高性能的数据流。最后,DataAdapter在 DataSet 对象和数据源之间起到桥梁作用。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令以向 DataSet 中加载数据,并将对 DataSet 中数据的更改协调回数据源。有关更多信息,请参见 .NET Framework 数据提供程序 (ADO.NET)和在 ADO.NET 中检索和修改数据。
DataSet
ADO.NET DataSet 是专门为独立于任何数据源的数据访问而设计的。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。有关更多信息,请参见 DataSet、DataTable 和 DataView (ADO.NET)。
下图阐释了 .NET Framework 数据提供程序和 DataSet 之间的关系。
ADO.NET 实体框架专门用于让开发人员能够通过针对概念性应用程序模型进行编程(而不是直接针对关系存储架构进行编程)来创建数据访问应用程序。这样做的目的是减少面向数据的应用程序所需的编码和维护工作。
ADO.NET 实体框架 旨在支持以数据为中心的应用程序和服务,并提供平台用于对数据进行编程,该平台将抽象级别从逻辑关系级别提升为概念级别。通过使开发人员可以在更高的抽象级别上使用数据,实体框架 支持独立于任何特定数据存储引擎或关系架构的代码。有关更多信息,请参见 实体框架简介。
实体框架 支持 实体数据模型 (EDM) 在存储和概念级别上定义数据以及这两个级别之间的映射。它还使开发人员能够直接对在概念级别上定义为公共语言运行库 (CLR) 对象的数据类型进行编程。实体框架 提供一些工具,用于基于现有数据库生成 EDM 和相关 CLR 对象。过去在创建基于对象的数据应用程序和服务时,需要大量数据访问代码,而这些工具减少了这些代码的使用,也使根据现有数据库创建面向对象的数据应用程序和服务更为快速。
Entity Framework 整体架构如图:
下图演示用于访问数据的实体框架体系结构: