The latest release of MicroLite.Extensions.WebApi (6.1) and Net.Http.WebApi.OData (3.1) now provide support for nearly the entire OData 3 spec that can be supported by MicroLite.
It is now possible to compare 2 properties:
$filter=FirstName eq LastName
And call nested functions:
$filter=concat(concat(City, ', '), Country) eq 'Berlin, Germany'
Decimal/Double and Single values don’t require
.0 for whole values:
$filter=Price eq 5M can now be used as well as
$filter=Price eq 5.0M
Method parameters no longer require a space after the comma:
$filter=endswith(CompanyName,'Futterkiste’) can now be used as well as
Literal strings (text wrapped in single quotes) can now contain a single quote by escaping it with another single quote:
$filter=LastName eq ‘O’’Brien’
Grouping is now supported in queries:
$filter=LastName eq 'Smith' and (Title eq 'Mr' or Title eq 'Mrs')
Without the grouping, the query would be translated as:
LastName = Smith and Title = Mr
Title = Mrs
There is no concept of an “in list” in OData so a grouped set of “or”s is the way to achieve the same result.
substringof now no longer require
eq true at the end:
startswith(CompanyName,’Alfr’) is the same as
startswith(CompanyName,’Alfr’) eq true
The not operator has also been implemented which means you can negate function calls: