2

私はこのようなクラスを持っています:

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 = "example@test.com"

この式を次のように変換するにはどうすればよいですか:

Expression<Func<MyParentObject<Person>, bool>> expression = p => p.Item.Name == "MyName" && p.Item.Email = "example@test.com"

編集 :

私の質問では開発が不十分だったと思います。次のような方法が必要です。

public static Expression<Func<MyParentObject<T>, bool>> GetParentExpression(Expression<Func<T, bool>> expression)
{
    Expression <Func<MyParentObject<T>, bool>> result = // process...
    // ...
    return result;
}

編集 :

C# mongodb ドライバーによって解析される新しいツリー式を作成する必要があります。式ツリーで他の Compile メソッドを呼び出すことができません。

ExpressionVisitorを使用する必要があると思いますが、方法がわかりません...

4

1 に答える 1