public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName)
where T : EntityObject
{
var param = Expression.Parameter(typeof(T), "o");
var body = Expression.PropertyOrField(param,columnName);
var sortExpression = Expression.Lambda(body, param);
return query.OrderBy(sortExpression);
}
Da der Typ für OrderBy nicht aus SortExpression geschlossen wird muss ich es so zur Laufzeit etwas spezifizieren:Wie verwende ich OrderBy auf einem IQueryable mit einem String-Spaltennamen innerhalb einer generischen Erweiterungsmethode?
var sortExpression = Expression.Lambda<T, TSortColumn>(body, param);
Oder
return query.OrderBy<T, TSortColumn>(sortExpression);
Ich glaube nicht, dass dies möglich ist, TSortColumn kann jedoch nur zur Laufzeit ermittelt werden.
Gibt es einen Weg um dies?
Nicht sicher, ob [diese] (http://stackoverflow.com/a/12920204/1139347) wonach du suchst, aber sieh es dir an. Prost – joaopintocruz
@JTew Wie kann ich eine zweite Bestellung durch Klausel..Say Orderby ID dann durch Datum – SRJ