Я использую Dynamic Linq, и сегодня я хотел создать немного более сложный вложенный запрос:
"Composition
.Where(((ExpirationDate > DateTime.UtcNow.Date) && (ExpirationDate.Year != 9999)))
.OrderBy(\"ExpirationDate ASC\")
.Select(ExpirationDate)
.FirstOrDefault() == @0"
(разрывы сделаны только для удобства чтения в этом посте, а не в коде)
Запрос хранится в строковой переменной и передается этому:
private static Func<IQueryable<T>, object, IQueryable<T>> CreateWhereExpression<T>(string whereClause) where T : class
{
return (q, o) => q.Where(whereClause, o);
}
Что с радостью создает выражение Where. (обратите внимание, что whereClause содержит точную строку выше "Composition.Where....") Но как только наступит время выполнения, он будет жаловаться:
Подходящего статистического метода OrderBy не существует.
Итак, мой вопрос, что я делаю неправильно? Как я могу заставить работать вложенный OrderBy?
LINQ
? Dynamic LINQ не поддерживает анализ собственного синтаксиса. - person   schedule 26.09.2014