1

我有表 DEPatientVisit 和 DEPhysician

我需要过滤基于数据的参数

4

2 回答 2

1

OData v4 引入了一个新的运算符“any”,它可以解决您的场景。您的请求网址如下所示:

~/FalconCPDataService.svc/DEPhysicians?$format=json&$expand=DEPatientVisits&$filter=DEPatientVisits/any(v:v/StimulatorGourpId+eq+guid%27F321EDAB-14C6-4FF2-9485-00ABD176EBC4%27)

有关更多信息,请参考:http ://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html ,第 5.1.1.5.1 节任何

于 2014-04-26T13:45:36.973 回答
1

谢谢邀请。

对于第一个查询,您的查询目标是 DEPhysicians 中的实体?或 DEPatientVisits?如果想要返回 DEPhysicians 中的实体,但内联展开导航属性 DEPatientVisits,并希望使用 StimulatorGourpId 过滤 DEPatientVisits 中的实体。尝试:

localhost:33396/FalconCPDataService.svc/DEPhysicians?$format=json&$expand=DEPatientVisits($filter=StimulatorGourpId eq guid'27F321EDAB-14C6-4FF2-9485-00ABD176EBC4')

对于第二个查询,尝试:

localhost:33396/FalconCPDataService.svc/DEPhysicians?$format=json&$select=FullName&$expand=DEPatientVisits($select=Diagnosis,VisitDate;$filter=VisitID eq guid'F321EDAB-14C6-4FF2-9485-00ABD176EBC4')

以上所有查询都遵循OData Protocol V4。$select 和 $filter 可以内联 $expand。但是,我不确定它是否在 odata4j 中实现。在示例服务中,您可以参考以下类似查询 http://odatae2etest.azurewebsites.net/javatest/DefaultService/Orders?$expand=OrderDetails($select=OrderID;$filter=ProductID%20eq%206)

于 2014-05-04T03:10:52.070 回答