Créer une expression OrderBy pour LINQ / Lambda

Je suis de la création d'une preuve de concept qui utilise Lambda/LINQ dynamique où et orderby. Le code suivant fonctionne pour le où l'expression, mais je n'arrive pas à comprendre comment créer un bon de commande par l'expression. Pour cet exemple, si possible, je voudrais le garder simple; je préfère ne pas écrire du code qui modifie l'Expression de l'Arbre.

void Main()
{
    DateTime productSince = DateTime.UtcNow.Subtract(new TimeSpan(1,30,0));
    Expression<Func<Products, bool>> filter = d => d.CreatedDate > productSince && d.Price < 100 ;    
    List<Products> products = GetProducts(filter, Products);
    Console.WriteLine(products);
}

private static List<Products> GetProducts(Expression<Func<Products, bool>> filter,  Table<Products> Products)
{

    var products = Products.Where(filter);
    return products.ToList();
}

Ce que je veux, c'est semblable à la suivante, mais ne peut pas trouver le code pour créer la commande par l'expression.

void Main()
{
    DateTime productSince = DateTime.UtcNow.Subtract(new TimeSpan(1,30,0));
    Expression<Func<Products, bool>> filter = d => d.CreatedDate > productSince && d.Price < 100 ;
    Expression<Func<Products, ????>> orderBy = d => ??????;

    List<Products> products = GetProducts(filter, orderBy, Products);
    Console.WriteLine(products);
}

private static List<Products> GetProducts(Expression<Func<Products, bool>> filter,
               Expression<Func<Products, ???>> orderBy, Table<Products> Products)
{

    var products = Products.Where(filter).OrderBy(orderBy);
    return products.ToList();
}

Si vous vous demandez, je suis en utilisant LinqPad pour cette preuve de concept.

source d'informationauteur Mike Barlow - BarDev