{ //provare a dusare //var param = typeof(QueryDescriptorSort).GetProperty(par.Field); // if (par.Dir == "asc") // source.OrderBy(x => param.GetValue(x, null)); //makes expression for specific prop private static Expression <Func <TSource, object> > GetExpression <TSource>(QueryDescriptorSort property) { var param = Expression.Parameter(typeof(TSource), property.Field + "param"); Expression conversion = Expression.Convert(Expression.Property(param, property.Field), typeof(object)); return(Expression.Lambda <Func <TSource, object> >(conversion, param)); }
//makes deleget for specific prop private static Func <TSource, object> GetFunc <TSource>(QueryDescriptorSort propertyName) { return(GetExpression <TSource>(propertyName).Compile()); //only need compiled expression }