IQueryable для списка

я используюSystem.Linq.Dynamic чтобы позволить мне динамически выбирать список полей из запроса, как это:

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

кудаselectors это простоList<string> со всеми полями, которые я хочу. Это прекрасно работает, но эта версия метода расширенияSelect возвращаетIQueryable, Не этоне IQueryable<T>, Если у меня естьIQueryable<T> Я могу просто сделать.ToList() преобразовать его в список и заставить запрос фактически выполняться в базе данных, но с неуниверсальнымIQueryableэтот метод не существует.

Это потому чтоToList наследуется отIEnumerable<T> которыйIQueryable<T> наследует иIQueryableОчевидно, нет.

Итак, какой самый эффективный способ получитьIQueryable выполнить запрос и вернуть мне список? Я могу сделать это:

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

Но похоже, что их должно быть проще.

Изменить: в ответ на предложения, я попробовал оба:

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

а также:

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

Которые оба даютNotSupportedExceptions с сообщением:

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

Ответы на вопрос(1)

Ваш ответ на вопрос