WCF 数据服务协议实现详细信息

OData 协议实现详细信息

开放式数据协议 (OData) 需要实现协议的数据服务提供某些最小功能集。 这些功能在协议文件与以“应该”和“必须”描述。其他可选功能描述为“可能”。本主题描述了这些可选功能,它们当前未由 WCF 数据服务 实现。 有关更多信息,请参见 OData 协议文档(可能为英文网页)。

$format 查询选项的支持

OData 协议支持 JavaScript 表示法 (JSON) 和 Atom 配送,并且 OData 提供 $format 系统查询选项以允许客户端请求响应源的格式。 此系统查询选项,如果数据服务支持,必须重写请求的接受标头的值。 WCF 数据服务 支持返回 JSON 和 Atom 配送。 然而,默认实现不支持 $format 查询选项并只使用接受标头的值来确定响应的格式。 某些情况下,您的数据服务可能需要支持 $format 查询选项,例如,当客户端不能设置接受标头时。 为支持这些情况,您必须扩展您的数据服务,处理此选项在 URI 中。 您可以通过下载 JSONP 和 URL 控制添加该功能至数据服务,该格式支持 ADO.NET 数据服务 示例项目,下载位置为 MSDN 代码库的 web 站点,并可将其添加到您的数据服务项目。 此示例将删除 $format 查询选项并更改要接受头为 application/json。 当您将该示例项目包含和添加 JSONPSupportBehaviorAttribute 至您的数据服务类使服务能够处理 $format 查询选项 $format=json。 需要进一步自定义此示例项目以处理 $format=atom 或其他自定义格式。

WCF 数据服务行为

以下 WCF 数据服务 行为未显式定义(通过 OData 协议定义):

默认排序行为

当查询请求发送到数据服务并包括 $top 或 $skip 系统查询选项,但不包括 $orderby 系统查询选项,返回的源按升序排序根据键属性排序。 这是因为需要顺序以确保结果正确分页。 为此,数据服务向查询中添加有序表达式。 数据服务中启用服务器驱动分页时,也会发生此行为。 有关详细信息,请参阅 配置数据服务(WCF 数据服务)。要控制返回源的顺序,应包括 $orderby 在查询 URI 中。

请参阅

其他资源

数据服务 (WCF Data Services)

数据客户端 (WCF Data Services)