ADO.NET 数据服务系统查询选项

URI 系统查询选项表示一些指令,可供 ADO.NET 数据服务用来控制对请求的响应。下表汇总了 ADO.NET 数据服务支持的选项。

有关受支持的系统查询选项的摘要

下表列出并描述了 ADO.NET 数据服务 URI 使用的查询选项。可为查询追加这些选项,以便对结果进行限制或排序。

选项 说明

$expand

用于请求将目标集引用的集以内联形式而不是作为延迟的内容返回。

$filter

仅返回目标集中符合指定谓词的元素。

$orderby

将目标实体集按升序或降序排序。

$skip

在目标中搜索 n 个项,然后将 n+1 个项返回到集的结尾。

$top

返回目标集中的前 n 个项。

如果指向不支持相应操作的资源的 URI 中包含查询选项,则将返回响应代码“400 错误的请求”。

查询选项的应用顺序

当 ADO.NET 数据服务应用此查询顺序时,按照下面的列表中指定的顺序执行。如果缺少任一选项,则跳过相应的步骤。

$filter. 这将限制返回的元素集。

$orderby. 这将设置返回的元素的顺序。

$skip. 这将跳过大量元素。

$top. 这将限制返回的元素数目。

$expand. 这将返回与返回的基元素相关的内容。

URI http://www.example.com/service.svc/Orders?$orderby=ID&$top=10&$skip=10 指示返回的订单将是按照订单的 ID 属性值排序的订单列表中的 #11 到 #21。

每个 URI 支持的系统查询选项

下表枚举了每个类型的 URI 语法支持或不支持的查询选项。每个语法示例的后面都跟有一个表,此表列出了该语法支持的选项。

URI: serviceName/<EntitySet>
选项 支持 说明

$expand

返回一个实体集。

$filter

返回一个实体集。

$orderby

返回一个实体集。

$skip

返回一个实体集。

$top

返回一个实体集。

URI: serviceName/<ResourceSet>(KeyPredicate)
选项 支持 说明

$expand

返回指定条件标识的资源,通常是与基资源集相关的数据。

$filter

如果筛选条件为 true,则返回资源;否则,将返回响应“404 找不到资源”。

$orderby

$skip

$top

URI: serviceName/<ResourceSet>(KeyPredicate)/<ResourceComplexType>
选项 支持 说明

$expand

总是扩展复杂类型,即使 URI 中不存在 $expand

$filter

如果筛选条件为 true,则返回复杂类型实例;否则,将返回响应“404 找不到资源”。

$orderby

$skip

$top

URI: serviceName/<ResourceSet>(KeyPredicate)/<ResourceComplexType>/<ResourceProperty>
选项 支持 说明

$expand

总是扩展复杂类型,即使 URI 中不存在 $expand。如果资源属性不是复杂类型,则它本身不具有可扩展的属性。

$filter

$orderby

$skip

$top

URI: serviceName/<ResourceSet>(KeyPredicate)/<ResourceProperty>
选项 支持 说明

$expand

总是扩展复杂类型,即使 URI 中不存在 $expand。如果资源属性不是复杂类型,则它本身不具有可扩展的属性。

$filter

$orderby

$skip

$top

URI: serviceName/<Resource Set>(KeyPredicate)/<ResourceNavigationProperty>

如果上一个示例中的导航属性表示一对一或多对一的关系,则对查询选项的描述如下表所示:

选项 支持 说明

$expand

返回一个实体类型实例。

$filter

返回一个实体类型实例。

$orderby

$skip

$top

如果导航属性表示一对多或多对多的关系,则对查询选项的描述如下表所示:

选项 支持 说明

$expand

返回一个实体集

$filter

返回一个实体集

$orderby

返回一个实体集

$skip

返回一个实体集

$top

返回一个实体集

另请参见

概念

ADO.NET 数据服务查询选项
服务操作参数(ADO.NET 数据服务框架)