我刚从这里读到OData。
http://msopentech.com/odataorg/introduction/
抱歉,我有点不耐烦了。
在我浏览剩下的材料之前,我现在只有一个简单的问题。这两个选项中哪一个描述了OData?
据我所知,它提供了一个协议(很像SOAP或XML / Json over HTTP或XML-RPC),用于通过Web将服务数据传输到客户端。我所感兴趣的是它还有助于查询数据,这是一个很难解决的问题,因为它有助于减少在使用XML / SOAP Web服务或其他方法查询大型数据集时经常遇到的有效负载(XML over Http,Json通过Http,RPC响应,你可以命名它。)
选项A oData是否将所有数据传输到客户端,使用一些基于客户端的存储(如桌面浏览器的HTML 5本地存储)来存储它,然后使用进程内API查询客户端上的数据?
或的
选项B 它是否为翻译Linq提供了基于XML的语法表达式,并且只从服务器获取相关的结果集(已过滤,有序,无论如何)?
有趣的是,当你输入自己的想法时,你最终会解决自己的问题。我想只需输入问题就可以得到答案。由于很多原因,选项A 听起来很荒谬:
1)如果它是一个以数据为中心的协议,它不必关心什么类型的客户端或消费者会想要数据,因此它不能与客户端或客户端的功能(客户端缓存)有任何关联
2)它是一种以数据为中心的协议,因此没有规定如何在客户端或服务器端读取数据或提供任何工具。它只是规定了一种数据格式,我想是。
必须是选项B 。不过,我只想要确认或更正。
答案 0 :(得分:1)
是的,它是选项B.
显然,您可能会写一个糟糕的客户端实现,它会下载所有数据,然后根据客户端逻辑过滤和显示数据。但那会很愚蠢。
在OData.org的“URL Conventions”页面中详细说明了“编写”查询的方式,通常类似于:http://someserver/odata.svc/Customers(Location eq 'New York')