Expression tree — AST кода, который провайдер (EF) переводит в SQL, а не исполняет сразу как делегат.
Разбор
- IQueryable принимает Expression.
- Лямбда в IEnumerable — делегат.
- Нетранслируемые методы ломают SQL.
- Помогает дебажить EF.
Итог
Expression trees делают LINQ переносимым на другие движки.