In case you have missed this hidden gem from the update, Queryable now supports following four properties. I will cover other properties in separate blog post.
- ResultLimit
- StableOrdering
- LamdaNestingLimit
- HandleNullPropogation
Having support for ResultLimit is really great news for people using oData support in WebAPI.
This means that you can now set the upper limit on the amount of records that will be returned for a given resource when you apply Queryable attribute. This is very important step to make sure that the client of your API don’t unnecessarily run large queries therby limiting the system scalability.
If you want this capability on an existing system, ensure that oData version of API is latest. Mine is Microsoft.AspNet.WebApi.OData.0.2.0-alpha-121031\lib\net40\System.Web.Http.OData.dll. I have also applied the fall 2012 update.
Let’s say you this method on /webapi/Accounts
and you perform simple Get operation /webapi.
This returns count of 3.
Now add the ResultLimit property on Queryable Attribute and set this value to 2.
Let’s execute the same query again.
It returns 2 as expected.