TableAdapterManager 概述
TableAdapterManager 是一个组件,它提供了将数据保存在相关数据表中的功能。 TableAdapterManager 使用将数据表关联起来的外键关系来确定将 Insert、Update 和 Delete 从数据集发送到数据库的正确顺序,而不违反数据库中的外键约束(引用完整性)。
“外键约束”是数据库中的一致性规则,用于控制与 Insert、Update 和 Delete 相关的记录的行为。 外键约束能够防止当其他表中仍然存在相关子记录时父记录被删除。
使用 TableAdapterManager 在相关数据表中保存数据的整个过程称为分层更新。
保存相关数据表中修改过的数据比保存单个表中的数据要复杂。 这是因为必须以特定的顺序执行每个相关表的 Insert、Update 和 Delete 命令,以避免违反数据库中定义的外键约束。 例如,假设有一个订单录入应用程序,您可以使用该程序管理新的和现有的客户和订单。 如果您需要删除一条现有客户记录,必须首先删除该客户的所有订单。 如果要添加新的客户记录(带订单),必须首先插入新的客户记录,然后再插入该客户的订单,这是表中外键约束的要求。 正如这些示例所示,您需要提取数据的特定子集,并以正确的顺序发送更新(Insert、Update 和 Delete)以维护引用完整性,避免违反数据库中的外键约束。
创建 TableAdapterManager
默认情况下,当您在项目中创建类型化数据集时将生成一个 TableAdapterManager 类。 更具体地说,正是数据集的 Hierarchical Update 属性中的值确定了是否创建 TableAdapterManager。 如果 Hierarchical Update 设置为**“True”,则创建 TableAdapterManager;如果 Hierarchical Update 设置为“False”**,则创建不包含 TableAdapterManager 的数据集。 有关更多信息,请参见如何:启用和禁用分层更新。
备注
默认情况下,对于在 Visual Studio 的早期版本中创建的项目,添加到其中的数据集的 Hierarchical Update 属性设置为“False”。这意味着,禁用分层更新,并且不创建 TableAdapterManager。有关向现有数据集添加 TableAdapterManager 的信息,请参见如何:在现有 Visual Studio 项目中实现分层更新。
TableAdapterManager 参考
TableAdapterManager 类不属于 .NET Framework。 因此,您不能在文档中查找它。 它是在设计时作为数据集创建过程的一部分创建的。
下面是 TableAdapterManager 类的常用方法和属性:
成员 |
说明 |
---|---|
UpdateAll 方法 |
保存所有数据表中的所有数据。 |
BackUpDataSetBeforeUpdate 属性 |
布尔型。 确定在执行 TableAdapterManager.UpdateAll 方法之前,是否创建该数据集的备份副本。 |
tableNameTableAdapter 属性 |
表示一个 TableAdapter。 生成的 TableAdapterManager 对它所管理的每个 TableAdapter 包含一个属性。 例如,生成包含 Customers and Orders 表的数据集时还生成一个 TableAdapterManager,它包含 CustomersTableAdapter 和 OrdersTableAdapter 属性。 |
UpdateOrder 属性 |
控制各个 Insert、Update 和 Delete 命令的执行顺序。 此属性应设置为 TableAdapterManager.UpdateOrderOption 枚举中的一个值。 默认情况下,UpdateOrder 设置为“InsertUpdateDelete”。 这意味着,对数据集中的所有表依次执行 Insert 、Update 和 Delete。 有关更多信息,请参见如何:设置分层更新的执行顺序。 |