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 

 

 

原文链接:http://blogs.msdn.com/b/alexj/archive/2009/11/18/tip-44-how-to-navigate-an-odata-compliant-service.aspx

相关推荐:

为什么Python 3.11的结构化模式匹配提升效率_实战演示match语法环境

match语句通过字节码级优化和单次结构探测替代链式if判断,减少重复取值与类型检查,在Python3.11+中实现更紧凑分支、更高JIT友好性及实际运行提速。 match语句本身不直接“提升运行时效率”,但它能显著减少冗余判断、避免重复解包、降低嵌套if深度,从而让代码更接近数据结构本质——这带来...

Python 3.5+如何实现字典的解包合并_使用双星号**语法进行字典解构

**解包在函数调用中是关键字参数展开,在字典字面量中是浅层键值覆盖合并;它总生成新字典,不修改原字典,不递归处理嵌套,同名键按从左到右顺序被后项覆盖。 Python3.5+中**解包字典的底层行为是什么 双星号**在函数调用中是「关键字参数解包」,不是「字典合并」本身。它把字典的键值对展开成key=...

Python 3.10中的match-case语句如何编写_使用结构化模式匹配语法替代多重if

match-case是结构化模式匹配,支持解包、类型校验与变量绑定;常见错误是casex误作值匹配实为绑定,应改用字面量或守卫条件。 match-case语句不是switch的Python翻译,它做的是结构化模式匹配——能解包、能校验类型、能绑定变量,但写法稍不注意就会掉进“看似匹配、实则跳过”的坑...

为什么Python 3.10的新型Match语法适合复杂逻辑_对比传统if-else写法

match仅在处理结构化、多形态数据时不可替代:它自动完成类型判断、字段提取与存在性验证,支持混合类型匹配和守卫条件,但要求Python3.10+,且变量仅在匹配成功时定义。 match语法不是“更适合复杂逻辑”,而是只有在处理结构化、多形态的数据时,才真正显出不可替代的价值。单纯比分支数量或嵌套深...

为什么Python 3.10中的match-case对复杂数据结构更有优势_解析模式匹配语法

match-case真正快在解构而非比大小,它一次性完成类型检查、字段提取和嵌套访问;适合字典、元组等结构化数据匹配,不推荐用于简单枚举值比对。 match-case真正快的地方是解构,不是比大小 它快,是因为一次性完成类型检查+字段提取+嵌套访问,而不是因为“语法新”。比如匹配{"type":"u...