Я полагаю, что ваша проблема в том, что в первом выражении, где вы используете List <>, все делается в памяти с помощью IEnumerable & Link-to-Objects.
Очевидно, ваш DBClass
является IQueryable с использованием Linq-to-SQL.IQueryables использует дерево выражений для построения оператора SQL для отправки в базу данных.
Другими словами, несмотря на то, что эти операторы выглядят одинаково, они делают совершенно разные вещи, одно из которых разрешено, а другое - нетт.(Многое из того, что var y = x * 5;
будет либо успешным, либо неудачным, в зависимости от того, является ли x
целым или строковым).
Кроме того, ваш первый пример может скомпилироваться, но, насколько я могу судить, онпотерпит неудачу, когда вы запустите его.Это не очень хороший критерий успеха.
Единственный способ, с помощью которого я вижу эту работу, - это если запрос с использованием dynamic
выполняется для IEnumerables с использованием Link-to-Objects.(Загрузите полную таблицу в список, а затем запросите список)