You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OData指定仅返回扩展子记录集的第一条或最后一条记录

OData 扩展子记录取首尾单条的正确实现方案

错误原因排查

当前请求触发 URI 无效报错主要有两个核心问题:

  • $expand 内部多查询参数分隔符不符合规范:OData v4 标准要求 $expand 嵌套查询的多个选项之间用逗号分隔,你使用的分号是错误语法
  • 实体名拼写疑似有误:请求路径中的 ParenTable 缺失字母 t,正确实体名应为 ParentTable

正确查询示例

取子表最后一条(最新添加的记录)

http://myurl/odata/ParentTable?$count=true&$filter=Id eq 123456&$expand=ChildTable($orderby=AddedTimeStamp desc,$top=1)

取子表第一条(最早添加的记录)

仅需调整 $orderby 的排序方向即可:

http://myurl/odata/ParentTable?$count=true&$filter=Id eq 123456&$expand=ChildTable($orderby=AddedTimeStamp asc,$top=1)

兼容说明

如果修改分隔符后仍然报错,需确认服务端 OData 版本:

  • OData v3 原生不支持 $expand 内嵌套 $top/$orderby 参数,需要服务端单独开启扩展支持,或单独调用子表接口做关联查询
  • 少数自研 OData 框架可能要求嵌套参数用 & 分隔,优先按标准逗号分隔调试即可

内容的提问来源于stack exchange,提问作者John S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:36:04