Po pierwsze, korzystając z samouczków ASP.NET WebApi, utworzyłem podstawowy ApiController that exposes an Entity Framework model through OData. Usługa działa, aby zwrócić json dla zapytań filtru OData $.
Kiedy wykonać OData $filter queries that include "any" or "all" queryies na nieruchomości multi-wartości zgłasza ODataException
Oto zapytanie OData Próbuję użyć
~/api/Blogs?$filter=any(Tags,Name+eq+'csharp')
Moje ApiController wygląda następująco:
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;
}
}
Podmiot Blog ma tę umowę
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; }
}
Wyjątek rzucony
ODataException: Type 'Blog' does not have a property 'Name'
Jak widać, nie mam nic niezwykłego w moim kodu i wszystko powinno działać prawidłowo. Czy jest możliwe, że zapytania "any" i "all" nie są jeszcze obsługiwane w Microsoft ASP.NET Web API OData?
Kolejną rzeczą wartą odnotowania jest, że " $ inlinecount 'opcje odata zostaną zignorowane. –