VB 2010 (48)ADO.NET的体系结构

ADO.NET 体系结构

https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/ado-net-architecture

以前,数据处理主要依赖于基于连接的双层模型。 随着数据处理越来越多地使用多层体系结构,程序员正在向断开方法转换,以便为他们的应用程序提供更好的可伸缩性。

ADO.NET 组件

用于访问和操作数据的 ADO.NET 的两个主要组件是 .NET Framework 的数据访问接口和 DataSet

.NET Framework 数据提供程序

.NET Framework 数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。 Connection 对象提供到数据源的连接。 使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 DataReader 可从数据源提供高性能的数据流。 最后,DataAdapter 在 DataSet 对象和数据源之间起到桥梁作用。 DataAdapter 使用 Command 对象在数据源中执行 SQL 命令以向 DataSet 中加载数据,并将对 DataSet 中数据的更改协调回数据源。 有关详细信息,请参阅.NET Framework 数据访问接口检索和修改 ADO.NET 中的数据

DataSet

ADO.NET DataSet 是专门为独立于任何数据源的数据访问而设计的。 因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。 DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。 有关详细信息,请参阅数据集、数据表和 dataview

下图说明了 .NET Framework 数据访问接口与 DataSet之间的关系。

ADO.Net 图
ADO.NET 体系结构

选择 DataReader 或 DataSet

确定应用程序是否应使用 DataReader (请参阅使用 DataReader 检索数据)或 DataSet (请参阅数据集、数据表和 dataview),请考虑应用程序所需的功能类型。 使用 DataSet 可执行以下操作:

  • 在应用程序中将数据缓存在本地,以便可以对数据进行处理。 如果只需要读取查询结果,则 DataReader 是更好的选择。

  • 在层间或从 XML Web services 对数据进行远程处理。

  • 与数据进行动态交互,例如绑定到 Windows 窗体控件或组合并关联来自多个源的数据。

  • 对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用。

如果不需要 DataSet 所提供的功能,则可以通过使用 DataReader 以只进、只读方式返回数据,从而提高应用程序的性能。 尽管 DataAdapter 使用 DataReader 来填充 DataSet 的内容(请参阅从 DataAdapter 填充数据集),但你可以通过使用 DataReader提高性能,因为你将保存将由 DataSet使用的内存,并避免创建和填充 DataSet的内容所需的处理。

ADO.NET的主要设计目标包括:

  • 基于用户驱动的功能,保持对ADO.NET 1.x的向后兼容
  • 提高数据库调用的性能
  • 给高级用户提供更多的高级功能
  • 充分利用SQL Server的专用功能

    ADO.NET为目前的应用程序采用了两个最常见的数据访问策略。在开发传统的ADO时,许多应用程序都可以毫不间断地连接到数据库上。目前,广泛使用的Internet成为数据传输的主要方式,所以需要一种新的数据技术,在断开连接的体系结构中访问和更新数据。
    第一个常见的数据访问策略是用户必须定位一个数据集合,仅迭代这些数据一次。这是Web页面的常见情况。在我们创建的Web页面上接收到对数据的请求时,可以用数据库中的数据填充一个表。此时,需要进入数据库,提取需要的数据,在线上发送数据,再填充表。在这种情形中,目标是尽快获得数据。
    在断开连接的体系结构中,第二种处理数据的方式是提取—个数据集合,在使用该数据时独立于数据库。可以在服务器甚至客户机上处理数据。即使数据是断开连接的,也可以把数据(以及所有的表和关系)保存在客户端。传统的ADO数据用一个可以迭代的表来表示,但ADO.NET可以是数据库(包含表、列、行和关系)的一个反射。在处理数据的客户端副本时,可以把对本地数据副本的修改直接保存到数据库中。提供这个功能的技术是DataSet。
    传统的ADO用于两层环境(客户机一服务器),而ADO.NET面向多层环境。ADO.NET很容易使用,因为它有统一的编程模型。这个统一的编程模型在服务器上处理数据和在客户机上处理数据是一样的。由于模型是相同的,因此使用ADO.NET的效率很高。甚至使用新推出的工具如LINQ to SQL和Entity Framework,效率的提高会更明显。
 

发布了146 篇原创文章 · 获赞 0 · 访问量 2741

猜你喜欢

转载自blog.csdn.net/ngbshzhn/article/details/105582944
今日推荐