Odata Url 降序转换

问题描述 投票:0回答:3

我需要按患者就诊日期降序获取数据,所以我尝试了这样的网址

192.168.1.105:33396/FalconCPDataService.svc/DEPhysicians?$format=json&$expand=DEPatientVisits&$orderby=DEPatientVisits/VisitDate+desc

但显示异常

{"odata.error":{"code":"","message":{"lang":"en-US","value":"属性 'VisitDate' 的属性访问的父值是不是单个值。属性访问只能应用于单个值。"}}}

odata odata4j
3个回答
3
投票

原因是 DEPatientVisits 不是单值导航属性,因此无法向其附加属性名称。如果是单值,就可以正常工作,如:

http://services.odata.org/v4/OData/OData.svc/Products?$expand=Supplier&$orderby=Supplier/Name

1
投票

感谢邀请。

我不完全理解你的问题。您想对 DEPhysicians 中的实体进行排序吗?或 DEPatientVisits?

如果您尝试让 DEPhysicians 内联展开 DEPatientVisits,并希望按 VisitDate 对 DEPatientVisits 中的实体进行排序,您可以尝试:

locolhost/FalconCPDataService.svc/DEPhysicians?$format=json&$expand=DEPatientVisits($orderby=VisitDate desc)

如果您尝试根据 DEPatientVisits\VisitDate 对 DEPhysicians 中的实体进行排序,那么,就像 @tanjinfu 的答案一样,DEPatientVisits 不应该是一个集合。否则,您想使用 DEPatientVisits 中的哪个 VisitDate 条目进行排序?


0
投票

我在调用 odata 时这样做了。 g?$orderby=Date_and_Time%20desc

这给了我从表中按降序排列的记录。

© www.soinside.com 2019 - 2024. All rights reserved.