【问题标题】:OData $filter with multiple predicates具有多个谓词的 OData $filter
【发布时间】:2011-05-29 13:24:30
【问题描述】:

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

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

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

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

(我还不相信我什至可以编写一个 $filter 来处理第二个谓词。在这种情况下,假设我试图回答这个问题,“姓氏以 smith 结尾,名字以 Mary 开头")

【问题讨论】:

    标签: wcf filter odata predicate


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 2014-10-31
      • 1970-01-01
      相关资源
      最近更新 更多