Методы расширения в Linq до выражений сущностей - PullRequest
2 голосов
/ 30 ноября 2009

Если я создаю метод расширения для своих объектов-сущностей и пытаюсь использовать его в выражении LINQ, я получаю ошибку. Это ограничение и что-то, что я не могу сделать, или я что-то упускаю?

С уважением Freddy

1 Ответ

2 голосов
/ 30 ноября 2009

Проблема в том, что поставщик LINQ-to-Entities попытается преобразовать ваш метод расширения в оператор SQL. LINQ-to-Entities эффективно требует, чтобы все выражение запроса LINQ было переведено в SQL (обратите внимание, что LINQ-to-SQL не имеет этого ограничения; LINQ-to-Entities проводит четкую границу между клиентским пространством и пространством сервера, тогда как LINQ-to -SQL слабее). В зависимости от вашего метода расширения, это, вероятно, не может быть сделано. То есть, если есть какие-либо вызовы методов и т. Д., Которые нельзя преобразовать в SQL для работы в качестве запроса на стороне сервера, забудьте об этом.

...