我有表DEPatientVisit和DEPhysician
我需要过滤基于数据的参数
答案 0 :(得分: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节
答案 1 :(得分:1)
感谢您的邀请。
对于第一个查询,您的查询目标是DEPhysicians中的实体?还是DEPatientVisits?如果想在DEPhysicians中返回实体,但是内联展开导航属性DEPatientVisits,并希望在DEPatientVisits中使用StimulatorGourpId过滤实体。尝试:
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)