1.基礎查詢sql
1)列出全部的WagerInformations數據庫
http://localhost:9527/ODataService.svc/WagerInformationsui
2)按照主鍵查詢url
http://localhost:9527/ODataService.svc/WagerInformations(1)spa
PS:在.net裏面通常使用DataServiceKeyAttribute標識主鍵.net
3)獲取某個對象的一個成員orm
http://localhost:9527/ODataService.svc/WagerInformations(1)/EventNamexml
獲取主鍵爲1的WagerInformations的EventName屬性對象
4)若是這個屬性還有屬性 那麼依此類推排序
http://localhost:9527/ODataService.svc/WagerInformations(1)/Event/EventDateTime
另外不要試圖獲取原始類型的一些屬性 - -# 例如返回 String的Length屬性
5) $value 方案3返回對象的一個成員用的是Xml的數據格式.實際上咱們不少時候不須要那麼多的標籤,只想拿返回值
那麼使用url http://localhost:9527/ODataService.svc/WagerInformations(1)/EventName/$value
方案3的數據 <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <EventName xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">test 1</EventName>
方案5的數據 test 1
6) $filter 條件表達式
查詢EventName 等於 "test 1" 的表達式以下
http://localhost:9527/ODataService.svc/WagerInformations?$filter=EventName eq 'test 1'
查詢時間:
組合查詢表達式: and操做
http://localhost:9527/ODataService.svc/WagerInformations?$filter=(EventDateTime eq DateTime'2010-12-21T10:10:19.390625' ) and (BusinessUnitCode eq '2')
如下是運算符列表
Operator |
Description |
C# equivalent |
eq |
equals |
== |
ne |
not equal |
!= |
gt |
greater than |
> |
ge |
greater than or equal |
>= |
lt |
less than |
< |
le |
less than or equal |
<= |
and |
and |
&& |
or |
or |
|| |
() |
grouping |
()
|
7) $expand 包含屬性和關係
假設的WagerInformation擁有一個屬性 UserInformation User 表示用戶信息, 另外一個屬性 IEnumerable<CommonInformation> Commons 表示評論信息
使用 http://localhost:9527/ODataService.svc/WagerInformations?$expand=User ,Commons
返回的信息中就會包含相關類 (用於主外鍵關係)
- -# 若是不手動指定 而是自動關聯....那就悲劇了 可能數據庫中的全部表都有聯繫...而後把整個數據庫返回.....
之前作過很囧的事情.就是開了級聯刪除...而後刪除了一個很基本的配置項.....整個數據庫基本空了
8) $select 查詢字段的列表(和sql中select後面的表達式同樣)
如下url只想返回查詢全部信息的EventName屬性
http://localhost:9527/ODataService.svc/WagerInformations?$select=EventName
若是WagerInformation有一個User屬性 其包含一個UserName那麼查詢username的url以下
http://localhost:9527/ODataService.svc/WagerInformations?$select=User/UserName
9) $count 查詢數量
http://localhost:9527/ODataService.svc/WagerInformations/$count
返回的是真實數據不包含任何修飾 (raw data) 傳回的http body中就只有一個 "5" (不包含引號)
10) $orderby 排序
如下表達式按照BusinessUnitCode 降序 ,而後 EventName 升序排列
http://localhost:9527/ODataService.svc/WagerInformations?$orderby=BusinessUnitCode desc,EventName asc
11) $top
在10的基礎上 若是我只想返回第一條數據 那麼以下
http://localhost:9527/ODataService.svc/WagerInformations?$orderby=BusinessUnitCode desc,EventName asc&$top=1
這裏依然仍是用& 來分隔不一樣的表達式
12) $skip
這東西通常和$top配合來分頁
如下表達式跳過第一條, 而後返回最多10條數據
http://localhost:9527/ODataService.svc/WagerInformations?$top=10&$skip=1
13) $inlinecount
在分頁取數據的時候,常常要同時統計總記錄數
如下表達式在返回分頁數據的同時,順便同時返回全部的記錄數
http://localhost:9527/ODataService.svc/WagerInformations?$top=2&$skip=2&$inlinecount=allpages
若是表達式中有$filter 條件表達式 ,那麼返回的就是符合條件的全部數據的數量
http://localhost:9527/ODataService.svc/WagerInformations?$filter=BusinessUnitCode eq '1'&$inlinecount=allpages
14) $skiptoken
例如遊標或者書籤的一個東西
15)$links
獲取相關實體的url
http://localhost:9527/ODataService.svc/WagerInformations(1)/$links/User
16)$metadata
顯示元數據