我想在另一个中使用表达式:
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);
当发送到LINQ to SQL时,这将不起作用,因为SQL不知道f.Compile()。
如何在不编译变量f
的情况下评估表达式y
,但仍然使用常规语法来定义g
?
我不希望使用一些不可读的g
/ Expression.Add
等语句定义所有Expression.Multiply
。
感谢。
答案 0 :(得分:3)
查看Calling functions in LINQ queries和LINQ Extensions项目。 CLinq部分与您的问题无关,但它也包括LinqExt库,这正是您正在寻找的。 LinqKit也使用了相同的方法,它也为Linq提供了其他有用的扩展。