Я создаю небольшой класс поиска, использующий предикат для получения некоторых результатов:
вот мой запрос:
var results = (from u in db.users
join p in db.profiles on u.userId equals p.UserID
select new SearchResult { Profile = p, User = u }).AsQueryable().Where(predicate);
Результаты становятся перечисляемыми в SearchResult:
public class SearchResult
{
public user User { get; set; }
public profile Profile { get; set; }
}
Это прекрасно работает, но теперь я также хочу отсортировать его:
var sortedResult = results.OrderBy(x => x.User.timeAdded);
И это тоже хорошо работает, кроме случаев, когда я делаю:
Expression<Func<SearchResult, IComparable>> OrderByExpression = x => x.User.timeAdded;
var sortedResult = results.OrderBy(OrderByExpression);
Я получаю эту ошибку:Невозможно упорядочить по типу 'System.IComparable'.
Разве это не то же самое, что поместить лямбда-запрос прямо в предложение orderby (что работает)?Причина, по которой я это делаю, заключается в том, что я хочу передать выражение orderby другой функции.
Кто-нибудь знает, что я делаю неправильно?Спасибо!