Я заметил очень странное поведение Linq to Entities, если в запросе Linq используются пользовательские функции (которые правильно объявлены и подключены к Linq).Предположим, я выполняю оператор
var list = (from ts in context.Tests select MyFunction(ts.TestId));
. Linq создает правильный запрос SQL Select, который правильно использует MyFunction.Но проблема в следующем: Linq генерирует и отправляет этот оператор для каждой строки в таблице, а не отправляет его один раз!Я посмотрел в профилировщике SQL и обнаружил, что количество раз, когда этот оператор Select отправляется на сервер, равно количеству записей в тестовой таблице…
Что это?Это еще одна ошибка в Linq to Entities?Кто-нибудь знает обходной путь?Такое поведение действительно делает функции на стороне базы данных непригодными для использования.