我需要按患者就诊日期降序获取数据,所以我尝试了这样的网址
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' 的属性访问的父值是不是单个值。属性访问只能应用于单个值。"}}}
原因是 DEPatientVisits 不是单值导航属性,因此无法向其附加属性名称。如果是单值,就可以正常工作,如:
http://services.odata.org/v4/OData/OData.svc/Products?$expand=Supplier&$orderby=Supplier/Name
感谢邀请。
我不完全理解你的问题。您想对 DEPhysicians 中的实体进行排序吗?或 DEPatientVisits?
如果您尝试让 DEPhysicians 内联展开 DEPatientVisits,并希望按 VisitDate 对 DEPatientVisits 中的实体进行排序,您可以尝试:
locolhost/FalconCPDataService.svc/DEPhysicians?$format=json&$expand=DEPatientVisits($orderby=VisitDate desc)
如果您尝试根据 DEPatientVisits\VisitDate 对 DEPhysicians 中的实体进行排序,那么,就像 @tanjinfu 的答案一样,DEPatientVisits 不应该是一个集合。否则,您想使用 DEPatientVisits 中的哪个 VisitDate 条目进行排序?
我在调用 odata 时这样做了。 g?$orderby=Date_and_Time%20desc
这给了我从表中按降序排列的记录。