2010-12-22 43 views
22

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

“哪些人的姓氏以Smith结尾,并且至少有一个地址?”

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

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

(我还没有说服我甚至可以写一个$过滤器处理第二个谓语..在这种情况下,假设我试图回答这个问题,“姓氏以史密斯名字结尾,名字以玛丽开头”)

回答

44

您可以在$ filter中明确地组合谓词。例如:

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

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

+2

链接已损坏。 – AustinT 2014-06-17 01:40:35