jgauffin
jgauffin

Reputation: 101140

Assign a value from an expression mapping

I map properties using Expression<Func<TEntity, object>>.

I've just needed to fetch property values from objects until know. How can I assign values using that expression?

Upvotes: 1

Views: 570

Answers (1)

Kris Ivanov
Kris Ivanov

Reputation: 10598

try this, assuming 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;

then just use SetValue

Upvotes: 1

Related Questions