瞬间明白ADO.NET数据服务是怎么回事
创始人
2024-06-11 15:40:20
0

ADO.NET还是比较常用的,于是我研究了一下ADO.NET数据服务,在这里拿出来和大家分享一下,希望对大家有用。ADO.NET数据服务框架支持具象状态传输 (REST) 语义以外的功能。例如,服务操作和侦听器可用于将验证逻辑或安全过程添加到查询和更新中。可以使用 ADO.NET 数据服务定义的标准语法写入服务操作以对输出进行筛选或排序。以上示例的查询字符串中使用了排序语法,其中的 $orderby 和 $top 运算符应用于操作结果。

利用侦听器可以将自定义应用程序逻辑插入到数据服务的请求或响应过程中。必须为由数据服务公开的给定实体集显式注册侦听器方法。在指定的实体集上执行查询、插入、更新或删除操作时,将调用相应的侦听器。然后,侦听器可能会更改数据、执行授权策略或者甚至终止操作。

#T#ADO.NET数据服务也支持由关系数据库管理系统实现的存储过程。实体数据模型 支持将数据检索和修改映射到存储过程。ADO.NET 数据服务对此功能进行了改编。服务操作的服务范围可见性由某个方法控制,其方式与实体集可见性的控制方式大致相同。例如,若要使上述示例中的 CustomersByCity 方法可供访问,请将下图中的代码添加到派生自 DataService 的类。

  1. public class Northwind : DataService 
  2. {  
  3. public static void InitializeService(  
  4.  IDataServiceConfiguration config)  
  5. {  
  6. config.SetServiceOperationAccessRule("CustomersByCity",   
  7. ServiceOperationRights.All);  
  8. }  
  9.  
  10. [WebGet]  
  11. public IQueryable CustomersByCity(string city)  
  12. {…   
  13.  
  14. }  
  15. }  

侦听器

利用 ADO.NET数据服务,数据服务开发人员能够截获请求/响应管道并注入自定义验证逻辑。在 ADO.NET数据服务中,侦听器具有两大作用:使您能够向处理管道添加验证逻辑;提供一个用于在每个请求中插入自定义身份验证策略的场所。查询侦听器不能采用参数。

请求/URI 处理

当数据服务接收到 GET 请求时,将处理请求 URI 并调用数据服务上定义的任何查询截获方法。下面的示例演示查询侦听器方法的实现,此方法可截获针对订单的 GET 请求。此侦听器仅返回分配给满足 CustomerID=="AROUT" 条件的客户的订单。若要对发送请求的用户进行身份验证,以便此方法将返回分配给每个用户的订单,则需要更多代码。

[QueryInterceptor("Orders")]
public Expression> FilterOrdersByCustomer()
{
return o => o.Customers.CustomerID == "AROUT";
}

相关内容

热门资讯

如何允许远程连接到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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...