巧妙使用ADO.NET DataRelation对象
创始人
2024-06-11 15:51:27
0

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

  1. customerOrders.Relations.Add("CustOrders", _  
  2. customerOrders.Tables("Customers").Columns("CustID"), _  
  3. customerOrders.Tables("Orders").Columns("CustID")) 

C#

  1. customerOrders.Relations.Add("CustOrders",  
  2. customerOrders.Tables["Customers"].Columns["CustID"],  
  3. customerOrders.Tables["Orders"].Columns["CustID"]); 

ADO.NET DataRelation  也具有 Nested 属性,如果该属性设置为 true,则来自子表的行会在使用 WriteXml 以 XML 元素形式编写时嵌套在来自父表的关联行中。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...