Вам нужно использовать библиотеку запросов LINQ Dynamic для передачи параметров во время выполнения,
Это позволит использовать выражения linq, такие как
string orderedBy = "Description";
var query = (from p in products
orderby(orderedBy)
select p);