2017-11-13 9 views
1

私はsystem.linq.dynamic.core とnhibernate linqで作業しています。今私は2つの動的linq式をメソッドに渡したいと思います。 1つは親テーブル用で、もう1つは結合された子リスト用です。 両方の式の入力パラメータは、そう表現は、ランダムであってもよいれるラムダ式から入力パラメータ名を抽出する

"X => x.Name == \" ウィック\」 "

または

" K => k.FirstName = \ "John \" "

私は、動的linqでは文字列式をLambdaExpressionに解析できることを知っています。

結合を作成する場合は、結合された表の別名が必要です。だから私は 'x'か 'k'を抽出したいと思っています。 これは可能ですか?

答えて

4

LambdaExpressiona Parameters propertyです。これを使用して、ラムダのパラメータに関する情報にアクセスできます。あなたの場合、それは次のようなものです:

string GetParameterName(LambdaExpression expression) => expression.Parameters.Single().Name; 
+0

私が探していたものはまさに! – Franki1986

+0

Hmmm ..動的linqのParseLambdaメソッドを使用し、それは私の入力パラメータを削除します...そこに滞在するチャンスですか? – Franki1986

関連する問題