DataSet 对象是支持使用 ADO.NET 的断开连接分布式数据方案的核心。
DataSet 是数据的内存驻留表示形式,提供了一种一致的关系编程模型,无论数据源如何。 它可以与多个和不同的数据源一起使用,以及 XML 数据,或管理应用程序本地的数据。 代表 DataSet 一组完整的数据,包括相关的表、约束和表格之间的关系。 下图显示了 DataSet 对象模型。
数据集对象模型
中 DataSet 的方法和对象与关系数据库模型中的方法和对象一致。
DataSet 可以持久化其内容,并将其作为 XML 重新加载;其架构作为 XML 架构定义语言 (XSD) 架构。 有关详细信息,请参阅 在数据集中使用 XML。
DataTableCollection
ADO.NET DataSet 包含一个由 DataTable 对象表示的零个或多个表的集合。 包含DataTableCollectionDataTable中的所有对象。
DataTable 在 System.Data 命名空间中定义,并表示一个内存驻留数据的单表。 它包含一个由列 DataColumnCollection表示的集合,以及由一 ConstraintCollection个约束表示的约束,它们共同定义表的架构。 A DataTable 还包含一个由 DataRowCollection 表示的行集合,这些行包含表中的数据。 除了当前状态之外,一个 DataRow 保留其当前版本和原始版本,以标识对行中存储的值所做的更改。
DataView 类
使用 A DataView ,可以创建存储在数据 DataTable中的不同视图,该功能通常用于数据绑定应用程序中。 使用 a DataView,可以使用不同的排序顺序公开表中的数据,并且可以按行状态或基于筛选器表达式筛选数据。 有关详细信息,请参阅 DataViews。
数据关系集合
一个 DataSet 包含其 DataRelationCollection 对象中的关系。 对象 DataRelation 表示的关系将 DataTable 中的行与另一个 DataTable 中的行相关联。 关系类似于关系数据库中主键列和外键列之间可能存在的联接路径。 一个 DataRelation 标识 数据集的两个表中的匹配列。
通过关系,可以从一个表导航到 数据集中的另一个表。 一个 DataRelation 的基本元素是关系的名称、相关表的名称以及每个表中的相关列。 通过将对象数组 DataColumn 指定为键列,可以为每个表生成包含多个列的关系。 将关系添加到 DataRelationCollection时,可以选择添加 UniqueKeyConstraint 和 ForeignKeyConstraint,以在对相关列值进行更改时实施完整性约束。
有关详细信息,请参阅 添加数据关系。
XML
您可以从 XML 流或文档填充 DataSet 。 您可以使用 XML 流或文档向 DataSet 提供数据、模式信息或两者。 从 XML 流或文档提供的信息可以与 数据集中已存在的现有数据或架构信息组合在一起。 有关详细信息,请参阅 在数据集中使用 XML。
扩展属性
DataSet、DataTable 和DataColumn所有属性都有一个ExtendedProperties属性。
ExtendedProperties 是一个 PropertyCollection 可以放置自定义信息的位置,例如用于生成结果集的 SELECT 语句,或生成数据的时间。 该 ExtendedProperties 集合与 DataSet 的模式信息一起持久化存储。
LINQ to DataSet
LINQ to DataSet 为 DataSet 中存储的断开连接的数据提供语言集成的查询功能。 LINQ to DataSet 使用标准 LINQ 语法,并在使用 Visual Studio IDE 时提供编译时语法检查、静态键入和 IntelliSense 支持。
有关详细信息,请参阅 LINQ to DataSet。