Hai varie strade:
- ottenere un riferimento all'objectquery completo e aggiungere poi l'order tramite uno switch
var sponsorTypes = context.SponsorTypes.Include("Name");
switch (Thread.CurrentThread.CurrentUICulture.Name)
{
case "it-IT":
sponsorTypes = sponsorTypes.OrderBy(o => o.Content_it_IT);
break;
..
}
- ottenere un riferimento all'object query e usare il metodo OrderBy che permette di passare come stringa l'ordine
var sponsorTypes = (ObjectQuery)context.SponsorTypes.Include("Name");
sponsorTypes = sponsorTypes.OrderBy("Content_" + Thread.CurrentThread.CurrentUICulture.Name);
Guarda anche questo esempio
http://www.linqitalia.com/script/102/Ordinare-Dinamicamente-Query-EntitySQL-Entity-Framework.aspx - creare un Expression dinamicamente. E' più complicata, dai uno sguardo qua
http://blogs.sftsrc.com/stuart/archive/2009/02/19/130.aspx