首先,使用ASP.NET WebApi教程创建了一个基本的ApiController that exposes an Entity Framework model through OData。该服务用于返回用于OData $过滤器查询的json。
当我在一个多值属性进行的OData $filter queries that include "any" or "all" queryies它抛出一个ODataException
这里的OData的查询我试图使用
~/api/Blogs?$filter=any(Tags,Name+eq+'csharp')
我ApiController看起来是这样的:
public class BlogController : ApiController
{
public BlogsController()
{
this.Entities = new BlogEntities();
}
public ContactEntities Entities { get; set; }
[Queryable(PageSize = 25, AllowedQueryOptions = AllowedQueryOptions.All)]
public IQueryable<Blog> Get()
{
return this.Entities.Blogs;
}
}
博客实体有这个合同
public Blog {
public Guid ID { get; set; }
public string Title { get; set; }
public Tag Tags { get; set; }
}
public Tag {
public Guid ID { get; set; }
public string Name { get; set; }
}
抛出的异常
ODataException: Type 'Blog' does not have a property 'Name'
正如你所看到的,我什么都没有了我的代码,一切都普通的应该正常工作。 Microsoft ASP.NET Web API OData中是否有可能“any”和“all”查询不被支持?
另一个值得注意的事情是,' $ inlinecount'odata选项被忽略。 – 2013-03-18 11:32:17