Использование EF 3.5 - почему первый запрос, по-видимому, генерирует SELECT COUNT (*) ... в то время как второй выводит все данные перед выполнением где?
Чтобы это исправить, вы должны изменить Func<T1, TResult> на Expression<Func<T1, TResult>>. См. этот другой вопрос для объяснения, почему
Func<T1, TResult>
Expression<Func<T1, TResult>>