2011-08-08 1 views
11

内部のC#の式を評価:は、私は別のもので式を使用する別の表現

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); 

f.Compileは()SQLには不明であるため、SQLにLINQに送られたとき、これは動作しません。

変数yの式fをコンパイルせずに評価しますが、まだ通常の構文を使用してgを定義していますか?

gのすべてを、読めないExpression.Add/Expression.Multiplyなどのステートメントで定義する必要はありません。

ありがとうございました。

答えて

3

Calling functions in LINQ queriesLINQ Extensionsプロジェクトをご覧ください。 CLinqの部分はあなたの質問には関係ありませんが、あなたが探しているものだけであるLinqExtライブラリも含まれています。同じアプローチがLinqKitでも使用されています。これはLinqに他の便利な拡張機能も提供します。

+0

+1非常に興味深い記事です。 –

+0

ありがとう、私はあなたが与えたリンクからLinqKitをダウンロードしました。それは 'Invoke'と' AsExpandable'で完全に動作します。私は同意する、非常に興味深い記事。 – SemMike

関連する問題