попробуйте это, предполагая 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;
тогда просто используйте SetValue