I'm using Dynamic Linq and today I wanted to build a slightly more complex nested query:
"Composition
.Where(((ExpirationDate > DateTime.UtcNow.Date) && (ExpirationDate.Year != 9999)))
.OrderBy(\"ExpirationDate ASC\")
.Select(ExpirationDate)
.FirstOrDefault() == @0"
(the breaks are only there for readability in this post, not really there in code)
The query is held by a string variable and passed to this:
private static Func<IQueryable<T>, object, IQueryable<T>> CreateWhereExpression<T>(string whereClause) where T : class
{
return (q, o) => q.Where(whereClause, o);
}
Which happily creates the Where expression. (note that whereClause contains the exact string above "Composition.Where....") But as soon as it's time to execute, it will complain:
No applicable aggregate method 'OrderBy' exists
So my question is, what am I doing wrong? How can I get the nested OrderBy to work?