Dynamic MemberExpression
Quero criar uma MemberExpression sabendo apenas o nome do campo; por exemplo
public static Expression<Func<TModel, T>> GenerateMemberExpression<TModel, T>(string fieldName)
{
PropertyInfo fieldPropertyInfo;
fieldPropertyInfo = typeof(TModel).GetProperty(fieldName);
var entityParam = Expression.Parameter(typeof(TModel), "e"); // {e}
var columnExpr = Expression.MakeMemberAccess(entityParam, fieldPropertyInfo); // {e.fieldName}
var lambda = Expression.Lambda(columnExpr, entityParam) as Expression<Func<TModel, T>>; // {e => e.column}
return lambda;
}
O problema com o exposto acima é que o tipo de campo deve ser fortemente digitado. Passar "objeto" como o tipo de campo não funciona. Existe alguma maneira de gerar isso? Mesmo o LINQ dinâmico parece não funcionar.