2011-01-28 4 views
1

나는 속성을 Expression<Func<TEntity, object>>을 사용하여 매핑합니다.표현 매핑에서 값 할당

필자는 알고있을 때까지 객체에서 속성 값을 가져와야했습니다. 어떻게 표현식을 사용하여 값을 할당 할 수 있습니까?

+2

당신이 직접 그 표현과 함께 할 수 없습니다 SetValue 매크로를 사용' Expression > 트리 형태로). 참조 : "get"에 대해 LINQ 표현식을 제공 할 때 속성을 설정하려면 액션을 작성하십시오. http://stackoverflow.com/q/4596453/412770 – Ani

답변

1

expression = Expression<Func<TEntity, object>> 가정이 시도 :

MemberExpression memberExpression; 

switch (expression.Body.NodeType) 
{ 
    case ExpressionType.Convert: 
    memberExpression = ((UnaryExpression) expression.Body).Operand as MemberExpression; 
    break; 
    case ExpressionType.MemberAccess: 
    memberExpression = expression.Body as MemberExpression; 
    break; 
} 

var propInfo = memberExpression.Member as PropertyInfo; 

다음 당신은`액션 <..>을`작성해야합니다 (또는 것,