Как проверить, может ли EF.Core оценить выражение в базе данных? - PullRequest
0 голосов
/ 04 марта 2020

Я создаю дерево выражений, которое используется как условие where с EF.Core. Пока все поля, которые нужно искать, являются выражениями-членами (например, Entity.Property), это работает нормально. Это усложняется для более сложных выражений, таких как

entity.Child == null ? null : r.Child .Name

(FullConditionalExpression с вложенным свойством PropertyExpression, это можно перевести)

или

string.Join(",", entity.Childs.Select(c => c.Name))

(MethodCallExpression, это не переводимый).

Сначала я игнорировал все поля, не относящиеся к типу MemberExpression, но, таким образом, я проигнорировал упомянутое выше FullConditionalExpression, которое фактически переводимо. Есть ли способ проверить, может ли EF.Core переводить выражение для текущего активного поставщика базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...