1

我有一个非常简单的 Web API 项目的以下输出,我想过滤掉所有没有将 Children-property 设置为 null 的“实体”.. 有没有办法做到这一点?.. OData-查询是?

下一个问题是.. 是否可以创建一个查询来返回所有“父母”以及一个名字以 Emma 开头的孩子?

最后一个问题..是否可以将范围缩小到“父母”中的属性..例如,我可能想根据“父母”的年龄创建一个查询,但我只想看到孩子那位父母..在“范围”缩小的地方,因此输出只显示孩子们将是一个非常简洁的功能..

这是我的网址:{mydomain}/api/persons/Children$filters=Children

这是我的 XML:

<ArrayOfPerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://schemas.datacontract.org/2004/07/MvcApplication5.Models">
<Person>
<Age>12</Age>
<Children i:nil="true"/>
<Name>Ada Svensson</Name>
</Person>
<Person>
<Age>19</Age>
<Children i:nil="true"/>
<Name>Emma Svensson</Name>
</Person>
<Person>
<Age>43</Age>
<Children>
<Person>
<Age>12</Age>
<Children i:nil="true"/>
<Name>Ada Svensson</Name>
</Person>
<Person>
<Age>19</Age>
<Children i:nil="true"/>
<Name>Emma Svensson</Name>
</Person>
</Children>
<Name>Bertil Svensson</Name>
</Person>
<Person>
<Age>34</Age>
<Children i:nil="true"/>
<Name>Kalle Persson</Name>
</Person>
</ArrayOfPerson>

提前致谢!

4

1 回答 1

2

If your service supports OData V3 then you can do

/persons?$filter=Children/any()

(Note that if Children is a collection then it can never be null, it can only be empty - as per OData rules).

Currently it's not possible to filter on parent and then only request children using plain OData. You can filter on parent and then get both parent and children for it:

/persons?$filter=<my parent condition>&$expand=Children.
于 2012-12-03T16:13:15.740 回答