Dans l’API Web ASP.net MVC4 RC, j’avais une action Get définie comme auparavant:
public IQueryable Get() { var lst = ctx.GetListFromDB(); return lst.AsQueryable(); }
Quand /api/people?$inlinecount=allpages&$format=json&$top=50&$filter=(State+eq+'AL'+and+Zip+eq+'35242')
auparavant une URL du type: /api/people?$inlinecount=allpages&$format=json&$top=50&$filter=(State+eq+'AL'+and+Zip+eq+'35242')
Cela ferait le filtrage sur les objects, est-ce que quelque chose a changé depuis la bêta qui pourrait casser ça?
Vous devez mettre l’atsortingbut [Queryable] sur la méthode pour permettre le filtrage. Les notes de version décrivant le changement sont ici .
Mise à jour: dans RTM, ils semblent avoir séparé cette fonctionnalité dans son propre assemblage. Vous devez donc inclure une référence à l’assembly OData de l’API Web ASP.NET de Microsoft. Vous pouvez trouver la dernière version sur Nuget https://nuget.org/packages/Microsoft.AspNet.WebApi.OData
Mise à jour: dans la dernière version, l’atsortingbut Queryable a été renommé EnableQuery. Pour plus d’informations sur les modifications, voir http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata- v4-0.aspx
Donc, apparemment, cette fonctionnalité a été retirée du calendrier de publication final. Je suppose que cela signifie que nous devrons modifier les méthodes d’action WebAPI existantes pour inclure les parameters de filtrage, de sorting et de pagination nécessaires pour l’instant. Très sortingste en effet.
http://aspnetwebstack.codeplex.com/SourceControl/changeset/changes/af11adf6b3c5
… S’il vous plaît, ne votez pas contre moi pour être le porteur de mauvaises nouvelles;)
D’après ce que je vois (le 20/09/12), vous avez besoin du https://nuget.org/packages/Microsoft.AspNet.WebApi.OData/0.1.0-alpha-120815 pour que cela fonctionne. Malheureusement, il est toujours en pré-version. L’atsortingbut [Queryable] est dans ce paquet.
Je n’ai pas trouvé de très bonnes informations à ce sujet.