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

Ben*_*ale 35 wcf predicate filter odata

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

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

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

http:// localhost:55100/DemographicsDataService.svc/People?$ filter = endswith(LastName,'Smith')

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

Vit*_*SFT 62

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

/People?$filter=endswith(LastName,'Smith') and startswith(FirstName,'Mary')
Run Code Online (Sandbox Code Playgroud)

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

  • 链接坏了. (2认同)