IQueryable to List

estou a usarSystem.Linq.Dynamic para permitir que eu selecione dinamicamente uma lista de campos de uma consulta como esta:

finalQuery = query.Select(string.Format("new({0})", string.Join(",", selectors)));

Ondeselectors é apenas umList<string> com todos os campos que eu quero. Isso funciona muito bem, mas esta versão do método de extensãoSelect retorna umIQueryable. Não é issonão IQueryable<T>. Se eu tiver umIQueryable<T> Eu posso simplesmente fazer uma.ToList() para convertê-lo em uma lista e forçar a consulta a ser realmente executada no banco de dados, mas com o não genéricoIQueryable, esse método não existe.

Isto é porqueToList é herdado deIEnumerable<T> qualIQueryable<T> herda eIQueryable, obviamente, não.

Então, qual é a maneira mais eficiente de obter umaIQueryable executar a consulta e me devolver uma lista? Eu posso fazer isso:

List<object> rtn = new List<object>();
foreach (var o in finalQuery)
{
    rtn.Add(o);
}

Mas parece que deve ser uma maneira mais fácil.

Editar: em resposta a sugestões, tentei os dois:

finalQuery.Cast<object>().ToList();

e:

finalQuery.Cast<dynamic>().ToList();

Que ambos dãoNotSupportedExceptions com a mensagem:

Unable to cast the type 'DynamicClass1' to type 'System.Object'. LINQ to Entities 
only supports casting EDM primitive or enumeration types.

questionAnswers(1)

yourAnswerToTheQuestion