新聞中心
ADO.NET數(shù)據(jù)服務(wù)框架還是比較常用的,于是我研究了一下ADO.NET數(shù)據(jù)服務(wù)框架,在這里拿出來和大家分享一下,希望對大家有用。在需要業(yè)務(wù)邏輯的情況下(例如實(shí)現(xiàn)驗(yàn)證邏輯或安全時(shí)),可以使用服務(wù)操作。服務(wù)操作允許開發(fā)人員在 URI 標(biāo)識的服務(wù)器(類似于其他 ADO.NET 數(shù)據(jù)服務(wù)資源)上定義一個方法。這些服務(wù)操作是一些添加到派生自表示數(shù)據(jù)服務(wù)的 DataService 的類的方法。

成都創(chuàng)新互聯(lián)公司專注于庫倫企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。庫倫網(wǎng)站建設(shè)公司,為庫倫等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
ADO.NET數(shù)據(jù)服務(wù)框架之創(chuàng)建服務(wù)操作
若要實(shí)現(xiàn)服務(wù)操作,請將一個公共實(shí)例方法定義為派生自表示數(shù)據(jù)服務(wù)的 DataService 類的數(shù)據(jù)服務(wù)類的一部分。
◆此方法只能接受 [in] 參數(shù)。
◆如果對參數(shù)進(jìn)行定義,則每個參數(shù)的類型必須為基元類型。
◆此方法必須返回 void、IEnumerable 、IQueryable 、T 或基元類(如整數(shù)或字符串)。
◆T 必須為一個類,此類表示數(shù)據(jù)服務(wù)將公開的數(shù)據(jù)模型中的某個實(shí)體類型。
◆若要支持查詢選項(xiàng)(如排序、分頁和篩選),服務(wù)操作方法應(yīng)返回 IQueryable 。
◆必須用 [WebGet] 或 [WebInvoke] 屬性為此方法添加批注。
◆[WebGet] 使您能夠通過使用 GET 請求調(diào)用此方法。
◆[WebInvoke] 使您能夠通過使用 PUT、POST 或 DELETE 請求調(diào)用此方法。
#T#可以用 SingleResultAttribute 為服務(wù)操作添加批注,指定此方法的返回值是一個實(shí)體而不是一個實(shí)體集。這一區(qū)別確定了生成的響應(yīng)序列化。例如,當(dāng)使用 AtomPub 序列化時(shí),單個資源類型實(shí)例將表示為一個 entry 元素,而單個實(shí)例集將表示為一個 feed 元素。如果某個方法未遵循上面定義的約定,則不會將此方法公開為數(shù)據(jù)服務(wù)中的服務(wù)操作。對服務(wù)操作進(jìn)行尋址。
根據(jù) ADO.NET 數(shù)據(jù)服務(wù)協(xié)議規(guī)范,可通過將方法的名稱放置到 URI 的***個路徑段中來對服務(wù)操作進(jìn)行尋址??梢詫⑵渌窂蕉位虿樵冞x項(xiàng)添加到此 URI,具體取決于服務(wù)操作的返回類型。下面的示例對公開基于實(shí)體框架的模型的數(shù)據(jù)服務(wù)實(shí)現(xiàn)服務(wù)操作。
- public class Northwind :
- DataService
- {
- public static void InitializeService(IDataServiceConfiguration config)
- {
- // Entity sets access configuration.
- config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
- // Service operations access configuration.
- config.SetServiceOperationAccessRule("OrdersByCity",
- ServiceOperationRights.All);
- }
- [WebGet]
- public IQueryable
OrdersByCity(string city) - {
- if (string.IsNullOrEmpty(city))
- {
- throw new ArgumentNullException("city",
- "You must provide a city name argument");
- }
- return this.CurrentDataSource.Orders.Where(
- "it.ShipCity = @city",
- new ObjectParameter("city", city));
- }
- }
分享文章:剖析ADO.NET數(shù)據(jù)服務(wù)框架
網(wǎng)站URL:http://fisionsoft.com.cn/article/cdepdgo.html


咨詢
建站咨詢
