EDIT: Хорошо, код взрывается, потому что он не знает, что делать с вызовом foo()
. Запрос создается в виде дерева выражений , которое затем преобразуется в SQL.
Переводчик дерева выражений знает о различных вещах - таких как равенство строк и другие методы (например, string.StartsWith
), но он не знает, что делает ваш метод foo
- foo()
это черный ящик, насколько это касается. Поэтому он не может перевести его на SQL.