wcf – 具有多个谓词的OData $过滤器

如果我的模型中有两个实体,“People”和“Addresses”,并且特定Person具有零个或多个地址,可以通过AddressList导航属性访问,可以编写一个可以回答以下问题的OData查询:

“哪个人的姓氏以史密斯结尾,至少有一个地址?”

在我看来,我只能在这里做一个谓词,例如

http://localhost:55100/DemographicsDataService.svc/People?$ FILTER =的endsWith(姓氏, ‘史密斯’)

(我还不相信我甚至可以写一个$过滤器来处理第二个谓词..在这种情况下,假设我正在回答“以姓氏结尾的名字和名字以玛丽开头”的问题)

您可以在$过滤器中组合谓词。例如:

/People?$filter=endswith(LastName,'Smith') and startswith(FirstName,'Mary')

有关支持的运算符等的详细信息,请参阅此页:http://www.odata.org/documentation/odata-version-2-0/uri-conventions#FilterSystemQueryOption
目前,OData没有办法表达“至少有一个地址的人”这个问题。
根据您的数据,可能会下载所有符合第一个条件的人员,并在客户端上确定具有地址的人员。

http://stackoverflow.com/questions/4511973/odata-filter-with-multiple-predicates

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:wcf – 具有多个谓词的OData $过滤器