溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

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

發(fā)布時(shí)間:2021-12-03 17:01:34 來(lái)源:億速云 閱讀:172 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“ADO.NET數(shù)據(jù)服務(wù)是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“ADO.NET數(shù)據(jù)服務(wù)是什么”吧!

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)策略或者甚至終止操作。

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)。

public class Northwind : DataService<NorthwindEntities> {  public static void InitializeService(   IDataServiceConfiguration config)  {  config.SetServiceOperationAccessRule("CustomersByCity",   ServiceOperationRights.All);  }   [WebGet]  public IQueryable<Customer> CustomersByCity(string city)  {…    }  }

偵聽(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";
}

感謝各位的閱讀,以上就是“ADO.NET數(shù)據(jù)服務(wù)是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)ADO.NET數(shù)據(jù)服務(wù)是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI