在另一个表达式中评估C#表达式
我想在另一个中使用表达式:
Expression<Func> f = x => x * x * 27 + blah ... expression with x; Expression<Func> g = y => 3 + 8 * f.Compile()(y) * y * blah... expression with y and f(y);
这在发送到LINQ to SQL时不起作用,因为SQL不知道f.Compile()。
如何在不编译变量y
情况下计算变量y
上的表达式f
,但是仍然使用常规语法来定义g
?
我不想用一些不可读的Expression.Add
/ Expression.Multiply
等语句来定义所有g
。
谢谢。
看一下LINQ查询和LINQ Extensions项目中的调用函数 。 CLinq部分与您的问题无关,但它也包括LinqExt库,这正是您正在寻找的。 LinqKit也使用相同的方法,它也为Linq提供了其他有用的扩展。