我想创建web api odata服务,该服务返回由集合数据成员和此服务返回的其他成员组成的reault类型:
http://services.odata.org/OData/OData.svc/Suppliers?$ filter =地址/城市eq'Redmond'
如您所见,结果类型由集合数据成员和其他成员
组成任何人都可以给我一个样品怎么做?
我无法成功创建这种复杂类型,并且能够通过值
过滤集合项因为yuo可以在此查询中看到它返回所有结果而不过滤项目
services.odata.org/OData/OData.svc/Suppliers
我希望能够像这样过滤这种类型:
services.odata.org/OData/OData.svc/Suppliers?$filter=Address/City eq'Redmond'
在这个查询中,我设法过滤了集合成员项目,并仍然返回其他数据成员。
答案 0 :(得分:0)
Odata支持隐含在asp.net webapi RC中。 您只需从Actions返回IQueryable并使用[QueryableAttribute]标记它。 只有这个支持基于查询字符串的数据过滤。
当我看到[QueryableAttribute]没有在RTM中构建时,我有点失望。
在RTM中,它可以作为单独的软件包在Nuget上以预览/ alpha格式提供给Microsoft.AspNet.WebApi.OData。全面发布将于今年秋季晚些时候推出你可以从这里获取它(http://www.nuget.org/packages/Microsoft.AspNet.WebApi.OData)。有一个很好的概述帖子(http://blogs.msdn.com/b/alexj/archive/2012/08/15/odata-support-in-asp-net-web-api.aspx)
答案 1 :(得分:0)
如果您只想实现以下过滤器:services.odata.org/OData/OData.svc/Suppliers?$filter=Address/City eq'Redmond'
上的示例它有一个具有可查询属性的供应商和地址模型。它应该使用相同的$ filter查询。