自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

瞬間明白ADO.NET數(shù)據(jù)服務(wù)是怎么回事

開(kāi)發(fā) 后端
文章這里介紹了ADO.NET數(shù)據(jù)服務(wù)和實(shí)體數(shù)據(jù)模型 支持將數(shù)據(jù)檢索和修改映射到存儲(chǔ)過(guò)程,希望對(duì)大家有幫助。

ADO.NET還是比較常用的,于是我研究了一下ADO.NET數(shù)據(jù)服務(wù),在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。ADO.NET數(shù)據(jù)服務(wù)框架支持具象狀態(tài)傳輸 (REST) 語(yǔ)義以外的功能。例如,服務(wù)操作和偵聽(tīng)器可用于將驗(yàn)證邏輯或安全過(guò)程添加到查詢(xún)和更新中。可以使用 ADO.NET 數(shù)據(jù)服務(wù)定義的標(biāo)準(zhǔn)語(yǔ)法寫(xiě)入服務(wù)操作以對(duì)輸出進(jìn)行篩選或排序。以上示例的查詢(xún)字符串中使用了排序語(yǔ)法,其中的 $orderby 和 $top 運(yùn)算符應(yīng)用于操作結(jié)果。

利用偵聽(tīng)器可以將自定義應(yīng)用程序邏輯插入到數(shù)據(jù)服務(wù)的請(qǐng)求或響應(yīng)過(guò)程中。必須為由數(shù)據(jù)服務(wù)公開(kāi)的給定實(shí)體集顯式注冊(cè)偵聽(tīng)器方法。在指定的實(shí)體集上執(zhí)行查詢(xún)、插入、更新或刪除操作時(shí),將調(diào)用相應(yīng)的偵聽(tīng)器。然后,偵聽(tīng)器可能會(huì)更改數(shù)據(jù)、執(zhí)行授權(quán)策略或者甚至終止操作。

#T#ADO.NET數(shù)據(jù)服務(wù)也支持由關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)的存儲(chǔ)過(guò)程。實(shí)體數(shù)據(jù)模型 支持將數(shù)據(jù)檢索和修改映射到存儲(chǔ)過(guò)程。ADO.NET 數(shù)據(jù)服務(wù)對(duì)此功能進(jìn)行了改編。服務(wù)操作的服務(wù)范圍可見(jiàn)性由某個(gè)方法控制,其方式與實(shí)體集可見(jiàn)性的控制方式大致相同。例如,若要使上述示例中的 CustomersByCity 方法可供訪問(wèn),請(qǐng)將下圖中的代碼添加到派生自 DataService 的類(lèi)。

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

偵聽(tīng)器

利用 ADO.NET數(shù)據(jù)服務(wù),數(shù)據(jù)服務(wù)開(kāi)發(fā)人員能夠截獲請(qǐng)求/響應(yīng)管道并注入自定義驗(yàn)證邏輯。在 ADO.NET數(shù)據(jù)服務(wù)中,偵聽(tīng)器具有兩大作用:使您能夠向處理管道添加驗(yàn)證邏輯;提供一個(gè)用于在每個(gè)請(qǐng)求中插入自定義身份驗(yàn)證策略的場(chǎng)所。查詢(xún)偵聽(tīng)器不能采用參數(shù)。

請(qǐng)求/URI 處理

當(dāng)數(shù)據(jù)服務(wù)接收到 GET 請(qǐng)求時(shí),將處理請(qǐng)求 URI 并調(diào)用數(shù)據(jù)服務(wù)上定義的任何查詢(xún)截獲方法。下面的示例演示查詢(xún)偵聽(tīng)器方法的實(shí)現(xiàn),此方法可截獲針對(duì)訂單的 GET 請(qǐng)求。此偵聽(tīng)器僅返回分配給滿(mǎn)足 CustomerID=="AROUT" 條件的客戶(hù)的訂單。若要對(duì)發(fā)送請(qǐng)求的用戶(hù)進(jìn)行身份驗(yàn)證,以便此方法將返回分配給每個(gè)用戶(hù)的訂單,則需要更多代碼。

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

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2009-11-13 13:35:54

ADO.NET數(shù)據(jù)服務(wù)

2009-11-12 15:23:57

ADO.NET數(shù)據(jù)服務(wù)

2009-11-11 16:08:21

ADO.NET數(shù)據(jù)服務(wù)

2009-11-04 11:40:38

ADO.NET Dat

2009-12-25 14:23:35

ADO.NET設(shè)置

2009-12-28 15:11:36

ADO.NET專(zhuān)家

2009-11-11 13:59:15

ADO.NET與ADO

2011-05-20 11:31:07

ADO.NET

2009-11-11 15:09:35

ADO.NET數(shù)據(jù)集

2009-11-12 10:06:01

ADO.NET讀取數(shù)據(jù)

2009-11-13 09:30:28

2009-12-21 17:02:19

ADO.NET Sql

2009-12-22 14:15:08

ADO.Net處理數(shù)據(jù)

2009-11-03 16:37:10

2009-11-12 15:55:31

ADO.NET對(duì)象服務(wù)

2009-09-14 13:37:25

LINQ ADO.NE

2009-08-13 11:17:34

什么是ADO.NET

2009-12-22 10:27:01

ADO.NET數(shù)據(jù)

2009-12-23 17:54:01

ADO.NET 2.0

2009-12-30 15:11:35

ADO.NET數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)