Asp.net web api web api odata服务-返回复杂类型

Asp.net web api web api odata服务-返回复杂类型,asp.net-web-api,Asp.net Web Api,我想创建返回结果类型的web api odata服务,该类型由集合数据成员和其他成员组成,如服务返回: ?$filter=地址/城市均衡器'Redmond' 如您所见,结果类型由集合数据成员和其他成员组成 谁能寄给我一个样品怎么做 我无法成功创建这种复杂类型,也无法通过这些值筛选集合项 正如yuo在这个查询中看到的,它返回所有结果,而不过滤项目 services.odata.org/odata/odata.svc/Suppliers 我希望能够像这样筛选此类型: services.odata.o

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

?$filter=地址/城市均衡器'Redmond'

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

谁能寄给我一个样品怎么做

我无法成功创建这种复杂类型,也无法通过这些值筛选集合项

正如yuo在这个查询中看到的,它返回所有结果,而不过滤项目

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

我希望能够像这样筛选此类型:

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


在这个查询中,我成功地筛选了集合成员项,但仍然返回了其他数据成员。

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

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


在RTM中,它是一个单独的包,即Nuget上的Microsoft.AspNet.WebApi.OData,以预览/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)

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

请在以下地址查看样品:


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

我知道如何筛选可查询的数据。我的问题是,我要筛选的对象由集合和其他一些非集合类型的数据成员组成。所以我不知道如何实现iQuerable,你能给我举个例子,如何在不使用集合或implemet ienumerable的情况下将tyoe转换为iQuerable,因为填充器在子类型上不起作用吗