Добрый день!
Если в Where метод передать лямбду которая построена с использованием Invoke, то код SQL всё таки генерируется (за что BLToolkit спасибо), однако он при этом теряет порядок действий (т.е. никаких скобок в итоге не ставит).
Т.е. схематично, если у нас:
AndElse
expr1
Invoke(
OrElse
expr2
expr3
)
То сгенерируется expr1 AND expr2 OR expr3, а должно было бы expr1 AND (expr2 OR expr3).
В общем-то проблема не особо актуальна, в виду того что можно сгенерировать лямбду и без Invoke, но с Invoke всё таки проще.