Метод GetNonCanceledAbsencesCriteria()
возвращает IQueryable, который получен от поставщика NH, что означает, что любая операция, которую вы выполняете над ним, с большей вероятностью будет интерпретирована в языке SQL.
from absence in GetNonCanceledAbsencesCriteria()
where processedWorkRosters.Any( ... )
select absence
Проблема с вышесказанным заключается в том, что processedWorkRosters
- это переменная, чуждая провайдеру NH Linq, а это значит, что он не знает, как перевести их в SQL.
Попробуйте:
from absence in GetNonCanceledAbsencesCriteria().ToArray()
where processedWorkRosters.Any( ... )
select absence
ToArray()
заставляет GetNonCanceledAbsencesCriteria()
быть оцененным немедленно, но может быть неоптимальным (или нет) ... и, если это так, вам может понадобиться переписать выражение where для "близкого к" языка SQL.