ordenamiento dinámico en linq

Por favor considere este escenario:

Tengo una lista de una clase con aproximadamente 50 campos. Quiero tener un Combobox que el usuario pueda seleccionar según la lista de campos que se ordenará. Por ejemplo, si el usuario selecciona la lista "F1" de acuerdo con "F1".

No quiero arreglar conif-else para cada campo. Veo este tema:

Ordenar una vista de cuadrícula al enlazar una colección de datos o una lista de objetos

Pero no puedo usar su respuesta. Como puedo usarExpression Tree ¿para este propósito?

Gracias

Editar 1) :

De acuerdo con la respuesta del querido @Thom Smith, escribí este código:

 using (NorthwindModel1.NorthwindEntities2 ent = new NorthwindModel1.NorthwindEntities2())
    {
        var query = from o in ent.Orders
                    where o.OrderID < 10257
                    select o;

        query.OrderBy("CustomerID", SortDirection.Ascending);

        GridView1.DataSource = query;
        GridView1.DataBind();
    }

pero no fue ordenado Si escribiera ese código de esta manera:

GridView1.DataSource = query.OrderBy(o=>o.CustomerID);

es una especie ¿Dónde está el problema?

Respuestas a la pregunta(5)

Su respuesta a la pregunta