【发布时间】:2012-08-30 08:07:32
【问题描述】:
所以我使用 mvc4 web api 创建了一个控制器,其中 url (Get) “/api/things” 返回以下数据:
<ArrayOfThing>
<Thing>
<Id>1</Id>
<Description>The Thing Desc</Description>
<Categories>
<Category><Id>1</Id></Category>
<Category><Id>2</Id></Category>
</Categories>
</Thing>
<Thing>
<Id>2</Id>
<Description>The Other Thing Desc</Description>
<Categories>
<Category><Id>1</Id></Category>
<Category><Id>3</Id></Category>
</Categories>
</Thing>
</ArrayOfThing>
*注意事物和类别有多对多的关系
我知道如果需要一个“事物”资源,我应该使用与以下路由 url (Get)“/api/things/{id}”匹配的控制器。
但是,如果我想获取 url (Get) “/api/things” 返回的数据的子集怎么办。我测试了修改控制器以返回 IQueryable 的 OData 协议,如果我想对“事物”的属性(如 Id 或描述)进行 $filter,它可以正常工作。不幸的是,当我想根据类别进行过滤时,我没有解决,我相信是因为类别是一个内部数组。
那么,我应该怎么做才能根据类别进行过滤?
【问题讨论】:
标签: asp.net asp.net-web-api odata