Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, vdimas, Вы писали:
V>>Но тело GetEnumerator() реализуется уже провайдером источника данных и почти всегда через нетривиальные преобразования над деревом выражений.
V>>А в случае линка над IEnumerable подставляется уже готовое тело из расширений Enumerable (или своё готовое тело, как показал Синклер).
S> Прикладного программиста, который пишет лямбду как это затрагивает?
в одном случае (для Queryable) аргумент метода будет Expression<Func<TSource, TResult>> selector
а в другом Func<TSource, TResult> selector.
дак вот в 1-м, нужно явно прописать выражение тогда компилятор из него сформирует AST.
во 2-м можно подставить например статический метод который и реализует нужную логику и который может быть где-то ещё переиспользован, но не сможет быть переиспользован в 1-м. точнее может, но в этом случае в AST будет вызов этого метода, про который sql server естественно не знает.