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 中不存在  | 
| $filter | 是 | 如果筛选条件为 true,则返回复杂类型实例;否则,将返回响应“404 找不到资源”。 | 
| $orderby | 否 | |
| $skip | 否 | |
| $top | 否 | 
URI: serviceName/<ResourceSet>(KeyPredicate)/<ResourceComplexType>/<ResourceProperty>
| 选项 | 支持 | 说明 | 
|---|---|---|
| $expand | 是 | 总是扩展复杂类型,即使 URI 中不存在  | 
| $filter | 否 | |
| $orderby | 否 | |
| $skip | 否 | |
| $top | 否 | 
URI: serviceName/<ResourceSet>(KeyPredicate)/<ResourceProperty>
| 选项 | 支持 | 说明 | 
|---|---|---|
| $expand | 是 | 总是扩展复杂类型,即使 URI 中不存在  | 
| $filter | 否 | |
| $orderby | 否 | |
| $skip | 否 | |
| $top | 否 | 
URI: serviceName/<Resource Set>(KeyPredicate)/<ResourceNavigationProperty>
如果上一个示例中的导航属性表示一对一或多对一的关系,则对查询选项的描述如下表所示:
| 选项 | 支持 | 说明 | 
|---|---|---|
| $expand | 是 | 返回一个实体类型实例。 | 
| $filter | 是 | 返回一个实体类型实例。 | 
| $orderby | 否 | |
| $skip | 否 | |
| $top | 否 | 
如果导航属性表示一对多或多对多的关系,则对查询选项的描述如下表所示:
| 选项 | 支持 | 说明 | 
|---|---|---|
| $expand | 是 | 返回一个实体集 | 
| $filter | 是 | 返回一个实体集 | 
| $orderby | 是 | 返回一个实体集 | 
| $skip | 是 | 返回一个实体集 | 
| $top | 是 | 返回一个实体集 |