0
我試圖創建一個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();