OData语法
OData 1-4 OData语法(上)
如果眼下提供OData的服务地址是
http://localhost:9527/ODataService.svc
提供的服务内容例如以下所看到的 (提供了一个WagerInformations)
<?
xml version="1.0" encoding="utf-8" standalone="yes" ?
>
<service xml:base="http://localhost:9527/ODataService.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
<workspace>
<atom:title>Default</atom:title>
<collection href="WagerInformations">
<atom:title>WagerInformations</atom:title>
</collection>
</workspace>
</service>
1.基础查询
1)列出全部的WagerInformations
http://localhost:9527/ODataService.svc/WagerInformations
2)依照主键查询
http://localhost:9527/ODataService.svc/WagerInformations(1)
PS:在.net里面一般使用DataServiceKeyAttribute标识主键
3)获取某个对象的一个成员
http://localhost:9527/ODataService.svc/WagerInformations(1)/EventName
获取主键为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 |
() |
OData 1-5 OData语法(下)
7) $expand 包括属性和关系
如果的WagerInformation拥有一个属性 UserInformation User 表示用户信息, 还有一个属性 IEnumerable<CommonInformation> Commons 表示评论信息
使用 http://localhost:9527/ODataService.svc/WagerInformations?$expand=User ,Commons
返回的信息中就会包括相关类 (用于主外键关系)
- -# 假设不手动指定 而是自己主动关联....那就悲剧了 可能数据库中的全部表都有联系...然后把整个数据库返回.....
曾经做过非常囧的事情.就是开了级联删除...然后删除了一个非常主要的配置项.....整个数据库基本空了
8) $select 查询字段的列表(和sql中select后面的表达式一样)
下面url仅仅想返回查询全部信息的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
显示元数据
200(OK)
202(Accepted)
204(No Content)
400(Bad Request)
404(Not Found)
405(Method Not Supported)
412(Precondition Failed)
500(Internal Server Error)
版权声明:本文博客原创文章。博客,未经同意,不得转载。
OData语法的更多相关文章
- Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)
微软动态CRM专家罗勇 ,回复333或者20190508可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 先举个N:N关系的例子.这里以根据团队的名称查找其所有团队成员的 ...
- Asp.Net Web API 2第十八课——Working with Entity Relations in OData
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html. 本文的示例代码的下载地址 ...
- mvc api odata 查询选项之 $inlinecount ,$format 选项
网上百度“odata 语法”会出来很多结果,其中有一项是比较一致的,那就是odata支持一下几种语法: $filter 条件表达式 -- 对应sql语句的where条件查询,如:/Categorie ...
- Working with Entity Relations in OData
Working with Entity Relations in OData 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs. ...
- mvc api odata查询选项之 $inlinecount $format 选项(转)
出处:http://www.it165.net/pro/html/201505/40236.html 网上百度“odata 语法”会出来很多结果,其中有一项是比较一致的,那就是odata支持一下几种语 ...
- Asp.Net Web API 2
Asp.Net Web API 2第十八课——Working with Entity Relations in OData 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导 ...
- Mego(2) - NET主流ORM框架分析
接上文我们测试了各个ORM框架的性能,大家可以很直观的看到各个ORM框架与原生的ADO.NET在境删改查的性能差异.这里和大家分享下我对ORM框架的理解及一些使用经验. ORM框架工作原理 典型ORM ...
- Dynamics CRM日期字段查询使用时分秒的方法
本人微信公众号:微软动态CRM专家罗勇 ,回复293或者20190110可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 我们 ...
- Azure Application Insights REST API使用教程
本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具. 新加入的team中的一项工作是制作日常的运维报表,制作方 ...
随机推荐
- String.format()【演示具体的例子来说明】
String.format()[演示样例具体解释] 整理者:Vashon 前言: String.format 作为文本处理工具.为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 Strin ...
- UVA 12206 - Stammering Aliens(后缀数组)
UVA 12206 - Stammering Aliens 题目链接 题意:给定一个序列,求出出现次数大于m,长度最长的子串的最大下标 思路:后缀数组.搞出height数组后,利用二分去查找就可以 这 ...
- 妙用perfmon Alert抓dump
抓dump文件,经常是解决众多疑难杂症的不二手段.但是很多时候,我们没办法抓.比如说 几秒内的线程数暴涨200个,然后迅速回落 程序跑了两天,内存涨到某个数字就自己OOM了 原因不外乎都是时间短,没有 ...
- jqm的多列布局demo,html5的多列布局demo,多列布局的具体解说,html5开发实例具体解释
因为移动设备屏幕宽度较小,所以一般不建议使用多列布局.但有时你可能须要并排放置一些元素(如button之类的). jQuery Mobile通过约定的类名ui-grid来提供了一种基于css的多列布局 ...
- SQL SERVER 内存分配及常见内存问题(1)——简介
原文:SQL SERVER 内存分配及常见内存问题(1)--简介 一.问题: 1.SQL Server 所占用内存数量从启动以后就不断地增加: 首先,作为成熟的产品,内存溢出的机会微乎其微.对此要了解 ...
- Android 在非主线程无法操作UI意识
Android在应用显示Dialog是一个非常easy事儿,但我从来没有尝试过Service里面展示Dialog. 经验UI操作要在主线程,本地的服务Service是主线程里没错,可是远程servic ...
- Android使用SVG矢量创建很酷的动态效率!
尊重原创,欢迎转载.转载请注明: FROM GA_studio http://blog.csdn.net/tianjian4592 一个真正酷炫的动效往往让人虎躯一震,话不多说.咱们先瞅瞅效果: ...
- 二十9天 月出冲击黑鸟 —Spring的AOP_AspectJ @annotation
6月14日,阴转雨. "四面垂杨十里荷,向云何处最花多, 画楼南畔夕阳和.天气乍凉人寂寞, 光阴须得酒消磨,且来花里听笙歌." 面向切面的框架AspectJ邂逅Spring,不仅造 ...
- BCP导出导入
BCP导出导入大容量数据实践 前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储过程,生成所需的数据文件,甚至可以生成包含SQL语句和数据的脚本文件.各有优 ...
- C++ Primer 学习笔记_43_STL实践与分析(17)--再谈迭代器【中】
STL实践与分析 --再谈迭代器[中] 二.iostream迭代[续] 3.ostream_iterator对象和ostream_iterator对象的使用 能够使用ostream_iterator对 ...