1

我想创建返回 reault 类型的 web api odata 服务,该类型由集合数据成员和其他成员组成,如此服务返回:

http://services.odata.org/OData/OData.svc/Suppliers ?$filter=Address/City eq 'Redmond'

如您所见,结果类型由集合数据成员和附加成员组成

谁能给我发个样品怎么做?

我无法成功创建这种复杂类型并能够通过那里的值过滤集合项

正如您在此查询中看到的那样,它返回所有结果而不过滤项目

services.odata.org/OData/OData.svc/Suppliers

我希望能够像这样过滤这种类型:

services.odata.org/OData/OData.svc/Suppliers?$filter=Address/City eq 'Redmond'

在这个查询中,我设法过滤了集合成员项目并仍然返回其他数据成员。

4

2 回答 2

0

如果您只想实现过滤器,例如:services.odata.org/OData/OData.svc/Suppliers?$filter=Address/City eq 'Redmond'

请在http://aspnet.codeplex.com/SourceControl/changeset/view/903afc4e11df#Samples%2fNet4%2fCS%2fWebApi%2fODataServiceSample%2fReadMe.txt查看示例

它有一个具有可查询属性的供应商和地址模型。它应该适用于相同的 $filter 查询。

于 2012-08-29T18:42:46.007 回答
0

Odata 支持隐含在 asp.net webapi RC 中。您只需要从您的操作返回一个 IQueryable 并用 [QueryableAttribute] 标记它。只有这么多支持基于查询字符串的数据过滤。

当我看到 RTM 中没有构建 [QueryableAttribute] 时,我有点失望。

在 RTM 中,它作为单独的包提供,Microsoft.AspNet.WebApi.OData 在 Nuget 上以预览/alpha 形式提供。完整版本将于今年秋季晚些时候发布。您可以从这里获取它(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)

于 2012-08-29T11:00:24.260 回答