Подтвердить что ты не робот

Выражение .Invoke в Entity Framework?

Entity Framework не поддерживает оператор Expression.Invoke. При попытке его использования вы получаете следующее исключение:

"Выражение LINQ node типа" Invoke "не поддерживается в LINQ to Entities.

У кого-нибудь есть обходной путь для этой недостающей функциональности? Я хотел бы использовать подробный здесь PredicateBuilder в контексте Entity Framework.

Изменить 1 @marxidad - Мне нравится ваше предложение, однако оно меня несколько сбивает с толку. Можете ли вы дать дополнительные рекомендации по предлагаемому решению?

Изменить 2 @marxidad - Спасибо за разъяснение.

4b9b3361

Ответ 1

PredicateBuilder и LINQKit теперь поддерживают Entity Framework.

Извините, ребята, за то, что раньше не делали этого!

Ответ 3

Да, похоже, что Entity Framework не поддерживает это, и я не мог бы использовать jerry-rig, чтобы заставить его оценивать так, как это работает.

Ответ 4

Структура Entity преобразует выражения LINQ в деревья команд Entity и внутри них поддерживаются только его канонические функции. Вам нужно будет использовать деревья команд с каноническими функциями, чтобы сделать что-то вроде PredicateBuilder.

Ответ 5

Решение Phobis находится на деньгах.

С небольшим усилием вы можете создавать сложные запросы Dynamic LINQ на лету, используя этот подход