OData 1-5 OData语法(下)
接上篇 http://www.cnblogs.com/PurpleTide/archive/2010/12/21/1912299.html
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
显示元数据
http://localhost:9527/ODataService.svc/$metadata