ADO.NET 数据集

DataSet 对象对于支持 ADO.NET 中的断开连接的分布式数据方案起到至关重要的作用。 DataSet 是数据驻留在内存中的表示形式,不管数据源是什么,它都可提供一致的关系编程模型。 它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。 DataSet 表示包括相关表、约束和表间关系在内的整个数据集。 下图将显示 DataSet 对象模型。

ADO.Net graphic
DataSet 对象模型

DataSet 中的方法和对象与关系数据库模型中的方法和对象一致。

DataSet 还可以按 XML 的形式来保持和重新加载其内容,并按 XML 架构定义语言 (XSD) 架构的形式来保持和重新加载其架构。 有关详细信息,请参阅在数据集中使用 XML

DataTableCollection

ADO.NET DataSet 包含由 DataTable 对象表示的零个或多个表的集合。 DataTableCollection 包含 DataSet 中的所有 DataTable 对象。

DataTable 在 System.Data 命名空间中定义,表示内存驻留数据的单个表。 其中包含由 DataColumnCollection 表示的列集合以及由 ConstraintCollection 表示的约束集合,这两个集合共同定义表的架构。 DataTable 还包含 DataRowCollection(其中包含表中的数据)所表示的行的集合。 除了其当前状态之前,DataRow 还会保留其当前版本和初始版本,以标识对行中存储的值的更改。

DataView 类

您可以利用 DataView 创建存储在 DataTable(一种通常在数据绑定应用程序中使用的功能)中的数据的不同视图。 通过使用 DataView,您可以使用不同的排序顺序公开表中的数据,并且可以按行状态或基于筛选器表达式来筛选数据。 有关详细信息,请参阅 DataViews

DataRelationCollection

DataSet 在其 DataRelationCollection 对象中包含关系。 关系由 DataRelation 对象来表示,它使一个 DataTable 中的行与另一个 DataTable 中的行相关联。 关系类似于可能存在于关系数据库中的主键列和外键列之间的联接路径。 DataRelation 标识 DataSet 中两个表的匹配列。

通过关系可以从 DataSet 中的一个表导航至另一个表。 DataRelation 的基本元素为关系的名称、相关表的名称以及每个表中的相关列。 关系可以通过一个表的多个列来生成,方法是将一组 DataColumn 对象指定为键列。 将关系添加到 DataRelationCollection 中之后,可以选择添加 UniqueKeyConstraint 和 ForeignKeyConstraint,在对相关列的值进行更改时,强制执行完整性约束。

有关详细信息,请参阅添加 DataRelations

XML

可以从 XML 流或文档填充 DataSet。 可以使用 XML 流或文档向 DataSet 提供数据和/或架构信息。 从 XML 流或文档中提供的信息可以与已存在于 DataSet 中的现有数据或架构信息进行合并。 有关详细信息,请参阅在数据集中使用 XML

ExtendedProperties

DataSet、DataTable 和 DataColumn 全部具有 ExtendedProperties 属性。 ExtendedProperties 是一个 PropertyCollection,可以在其中加入自定义信息,例如用于生成结果集的 SELECT 语句或生成数据的时间。 ExtendedProperties 集合与 DataSet 的架构信息一起持久化。

LINQ to DataSet

LINQ to DataSet 为数据集中存储的已断开连接的数据提供语言集成查询功能。 LINQ to DataSet 使用标准 LINQ 语法并在你使用 Visual Studio IDE 时提供编译时语法检查、静态类型和 IntelliSense 支持。

有关详细信息,请参阅 LINQ to DataSet

请参阅