Si quieres hacer algo como esto en LINQ:

var query =  
  db.Customers.Where("City = @0 and Orders.Count >= @1", "London", 10).
  OrderBy("CompanyName").Select("new(CompanyName as Name, Phone)");

Lo llevas claro, porque.NET no permite realizar LINQ dinámico. Para solucionarlo existe una librería que añadiéndola a tu proyecto podrás hacer cosas como la del ejemplo.
Para descargar la librería y unos ejemplos éste es el enlace o este.

Referencias
Dynamic LINQ(Parte 1: Usando la librería de LINQ Dynamic)