Я создаю дерево выражений, которое используется как условие 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 переводить выражение для текущего активного поставщика базы данных?