動的

2017-06-01 51 views
-3

I'v以下、動的表現を構築する方法を構築するには、私のコードです:動的

public static Expression<Func<T, bool>> BuildStringEqualLambda(string propertyName, string propertyValue) 
{ 
    ParameterExpression parameterExp = Expression.Parameter(typeof(T), "type"); 
    Expression propertyExp = Expression.Property(parameterExp, propertyName); 
    Expression right = Expression.Constant(propertyValue); 
    Expression e1 = Expression.Equal(propertyExp, right); 
    return Expression.Lambda<Func<T, bool>>(e1, new ParameterExpression[] { parameterExp }); 
} 

しかし、もしラムダ

c=>c.user.code == 'XXX' 

のような、私は以下のようなメソッドを呼び出します。

BuildStringEqualLambda("user.code","XXX"); 

方法レポートエラー。

だから私の質問は、式(C => c.user.code == 'XXX')動的

+2

"このメソッドは対応できません。"あなたはそれで何を意味するのですか? –

答えて

1

代わりの構築を取得する方法である:

ParameterExpression parameterExp = Expression.Parameter(typeof(T), "type"); 
Expression propertyExp = Expression.Property(parameterExp, propertyName); 

あなたがそれぞれに深く行く必要がありますプロパティ:

+0

propertyExpの初期値は何ですか? – user2155362

+0

@ user215536​​2私の回答を更新しました –