У меня есть класс, как это:Создание дерева выражения на родительском объекте из существующего выражения для C# MongoDB драйвера разбора
public class Person
{
public string Name { get; set; }
public string Email { get; set; }
// ...
}
И у меня есть другой общий класс, как:
public class MyParentObject<T>
{
public T Item { get; set; }
// ...
}
У меня есть для пример выражения, как это:
Expression<Func<Person, bool>> expression = p => p.Name == "MyName" && p.Email = "[email protected]"
Как я могу преобразовать это выражение:
Expression<Func<MyParentObject<Person>, bool>> expression = p => p.Item.Name == "MyName" && p.Item.Email = "[email protected]"
EDIT:
Я думаю, что мой вопрос был не достаточно развиваться, я хотел бы метод, как это:
public static Expression<Func<MyParentObject<T>, bool>> GetParentExpression(Expression<Func<T, bool>> expression)
{
Expression <Func<MyParentObject<T>, bool>> result = // process...
// ...
return result;
}
EDIT:
Я должен создать новое дерево выражение, которое будет проанализировано тогда с помощью драйвера C# mongodb. Я не могу использовать Invoke для других методов компиляции в дереве выражений.
Я думаю, что я должен использовать ExpressionVisitor, но я не знаю, как ...
Я верю, что преобразование выражения верное, у вас есть ошибка в p.Item.Email = "[email protected]", это должно быть p.Item.Email == "[email protected]", иначе опубликуйте вы получите. – Gusman