ADO.NET还是比较常用的,于是我研究了一下ADO.NET DataRelation,在这里拿出来和大家分享一下,希望对大家有用。ADO.NET 数据服务框架支持具象状态传输 (REST) 语义以外的功能。例如,服务操作和侦听器可用于将验证逻辑或安全过程添加到查询和更新中。
可以使用 ADO.NET 数据服务定义的标准语法写入服务操作以对输出进行筛选或排序。以上示例的查询字符串中使用了排序语法,其中的 $orderby 和 $top 运算符应用于操作结果。利用侦听器可以将自定义应用程序逻辑插入到数据服务的请求或响应过程中。必须为由数据服务公开的给定实体集显式注册侦听器方法。在指定的实体集上执行查询、插入、更新或删除操作时,将调用相应的侦听器。然后,侦听器可能会更改数据、执行授权策略或者甚至终止操作。
#T#在包含多个 DataTable 对象的 DataSet 中,可以使用 ADO.NET DataRelation 对象来使一个表与另一个表相关,在多个表之间导航,以及从相关表中返回子行或父行。创建 ADO.NET DataRelation 所需的参数是所创建的 ADO.NET DataRelation 的名称以及对用作关系中父列和子列的那些列的一个或多个 DataColumn 引用的数组。 当创建 ADO.NET DataRelation 后,可以使用它在多个表之间导航和检索值。
默认情况下,向 DataSet 中添加 ADO.NET ADO.NET DataRelation 会将一个 UniqueConstraint 添加到父表中并将一个 ForeignKeyConstraint 添加到子表中。以下代码示例使用 DataSet 中的两个 DataTable 对象来创建一个 ADO.NET DataRelation 。 每个 DataTable 包含一个名为 CustID 的列,它用作两个 DataTable 对象之间的链接。 该示例将单个 ADO.NET DataRelation 添加到 DataSet 的 Relations 集合中。 该示例中的***个参数指定所创建的 ADO.NET DataRelation 的名称。 第二个参数设置父 DataColumn,第三个参数设置子 DataColumn。
Visual Basic
- customerOrders.Relations.Add("CustOrders", _
- customerOrders.Tables("Customers").Columns("CustID"), _
- customerOrders.Tables("Orders").Columns("CustID"))
C#
- customerOrders.Relations.Add("CustOrders",
- customerOrders.Tables["Customers"].Columns["CustID"],
- customerOrders.Tables["Orders"].Columns["CustID"]);
ADO.NET DataRelation 也具有 Nested 属性,如果该属性设置为 true,则来自子表的行会在使用 WriteXml 以 XML 元素形式编写时嵌套在来自父表的关联行中。