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

时间:2010-12-22 17:41:05

标签: wcf filter odata predicate

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

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

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

http://localhost:55100/DemographicsDataService.svc/People?$滤波器=的endsWith(名字, '史密斯')

(我还不相信我甚至可以写一个$ filter来处理第二个谓词..在这种情况下,假设我试图回答这个问题,“姓氏以史密斯结尾,名字以玛丽开头“)

1 个答案:

答案 0 :(得分:58)

你绝对可以在$ filter中组合谓词。例如:

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

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