построение предиката без выражения значения

Я пытаюсь создать Expression<Func<T, TKey>> для IQueryable<T>.OrderByDescending()

Это в моем базовом классе для FindLast, и я обнаружил, что LastOrDefault не будет работать, и поэтому был необходим OrderByDescending.FirstOrDefault. Однако, как указано, это базовый класс, а сортировка по методу является первичным ключом, поэтому он должен быть tableName + "PK"

Вот код на данный момент:

Expression<Func<T, object>> predicate2 = null;
string propertyName = string.Empty;
propertyName = typeof(T).Name + "PK";

ParameterExpression parameter = Expression.Parameter(typeof(T), "x");
// x.PK
MemberExpression property = Expression.Property(parameter, propertyName);
ParameterExpression[] parameters = new ParameterExpression[] { parameter };
predicate2 = Expression.Lambda<Func<T, object>>(property, parameters);

result = query.Where(predicate).OrderByDescending(predicate2).FirstOrDefault(); // .LastOrDefault();

person Jessie Lulham    schedule 19.08.2016    source источник


Ответы (1)


Неважно, я понял... Нужно изменить predicate2 на соответствующий тип данных

Expression <Func <T, Int32>> predicate2
person Jessie Lulham    schedule 19.08.2016