OData with List

來源:互聯網
上載者:User

標籤:

OData是什麼

官方解釋:The Open Data Protocol (OData) is a data access protocol for the web. OData provides a uniform way to query and manipulate data sets through CRUD operations (create, read, update, and delete).

開始使用OData

要想使用OData,還有以下工作要做。

a.安裝OData的程式包。可以通過NuGet封裝管理員安裝,安裝命令:Install-Package Microsoft.AspNet.Odata

b.配置OData EndPoint。在WebApiConfig的Register方法中註冊OData路由和建立EDM,代碼如。

c.建立OData Controller和Action,代碼如。

現在可以訪問下面兩個url看看效果。

http://localhost.dev.wingontravel.com/HWAODataSite/opi?$metadata

,查看中繼資料,如

http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$select=CityName,CityEnglishName ,查詢CityName和CityEngLishName,多個欄位用,號分隔,如。

查詢

先來看一下OData支援哪些查詢選項,匯總如,然後來分別說明和示範。

①$select,一般用來返回指定的欄位,如url:http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$select=CityName,CityEnglishName

②$filter,一般用於過濾結果。如下面例子。

?http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$filter=CityCode eq ‘TSN’,過濾CityCode=“TSN”

?http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$filter=CityID lt 5,過濾CityID<5

?http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$filter=CityID ge 5,過濾CityID>5

?http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$filter=substringof(‘T’,CityCode),過濾CityCode包含”T”的,報錯’ An unknown function with name ‘substringof‘ was found’,還不知道為什麼。

重要:要使用filter功能,必須啟用它。如下代碼。

③$skip和$top,一般用於分頁。

?$skip和$top基於用戶端分頁,比如url:http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$top=5&$skip=5

?[PageSize]屬性,服務端分頁,如下代碼,限制介面一次只能返回10條記錄。

④$orderby,排序。比如

?http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$orderby= CityID desc,按CityID降序排

?http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$orderby= CityCode,CityID desc,組合排序

重要:要使用orderby,需要啟用。如下代碼。

3.1 一個綜合查詢的例子

需求:查詢CityID<16,取第二頁(每頁5條資料),按CityID降序排序,並且只返回CityName+CityEnglishName兩個欄位的城市資訊。

Url:

http://localhost.dev.wingontravel.com/HWAODataSite/opi/Citys?$filter=CityID lt 16&$top=5&$skip=5&$orderby=CityID desc&$select=CityName,CityEnglishName

注意:這個url放在fiddler中需要encode

OData V4特性路由

OData v4的特性路由類似於WebApi 2的特性路由,可以向Controller添加ODataRoutePrefix和向Action添加ODataRoute特性,它們都是在命名空間System.Web.OData.Routing下,而WebApi 2的特性路由在命名空間System.Web.Http下。如下代碼。

附:以上Demo已經放到GitHub上了。

1.https://github.com/mcgrady525/HelloWebAPI ,路由,序列化和模型繫結

2.https://github.com/mcgrady525/HelloWebAPI.OData ,OData和重點關注的部分

OData with List

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.