using System.Linq.Expressions; public static IQueryableIn this example, the GetCustomerNames method takes an existing IQueryableGetCustomerNames(IQueryable customers) { // Select only the FirstName and LastName columns var projection = Expression.Lambda( Expression.New( typeof(Customer).GetConstructor(Type.EmptyTypes) ), Expression.Property(customers.Expression, "FirstName"), Expression.Property(customers.Expression, "LastName") ); // Apply the projection to the IQueryable return customers.Provider.CreateQuery ( Expression.Call( typeof(Queryable), "Select", new Type[] { customers.ElementType, typeof(Customer) }, customers.Expression, projection ) ); }