相关疑难解决方法(0)

如何在不编译的情况下从现有的LambdaExpression构建LambdaExpression

我想结合两个LambdaExpressions而不编译它们.

这就是我编译它们时的样子:

    public Expression<Func<TContainer,bool>> CreatePredicate<TContainer,TMember>(
        Expression<Func<TContainer,TMember>> getMemberExpression, 
        Expression<Func<TMember,bool>> memberPredicateExpression)
    {
        return x => memberPredicateExpression.Compile()(getMemberExpression.Compile()(x));
    }
Run Code Online (Sandbox Code Playgroud)

这显然不是从提供的参数中获取目标表达式的最快方法.此外,它使它与不支持C#方法调用的LINQ to SQL等查询提供程序不兼容.

从我所看到的,似乎最好的方法是建立一个ExpressionVisitor班级.然而,这似乎是一个非常常见的任务.有谁知道现有的开源代码库提供这种功能?如果没有,最好的方法ExpressionVisitor是尽可能使其尽可能通用?

c# linq expression linq-expressions expressionvisitor

5
推荐指数
1
解决办法
659
查看次数