在另一个表达式中评估C#表达式

Sem*_*ike 11 c# expression-trees linq-to-sql

我想在另一个中使用表达式:

Expression<Func<double, double>> f = x => x * x * 27 + blah ... expression with x;

Expression<Func<double, double>> g = y => 3 + 8 * f.Compile()(y) * y * blah... expression with y and f(y);
Run Code Online (Sandbox Code Playgroud)

这在发送到LINQ to SQL时不起作用,因为SQL不知道f.Compile().

如何fy不编译变量的情况下评估变量上的表达式,但仍然使用常规语法来定义g

我不想g用一些不可读Expression.Add/ Expression.Multiply等语句定义所有内容.

谢谢.

Kon*_*hin 3

查看LINQ 查询LINQ 扩展项目中的调用函数。CLinq 部分与您的问题无关,但它还包括 LinqExt 库,这正是您正在寻找的。LinqKit也使用相同的方法,它还为 Linq 提供了其他有用的扩展。