Quiero crear MemberExpression solo con el nombre del campo; por ejemplo:Dynamic MemberExpression
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;
}
El problema con lo anterior es que el tipo de campo debe estar fuertemente tipado. Pasar "objeto" en como el tipo de campo no funciona. ¿Hay alguna forma de generar esto? Incluso Dynamic LINQ no parece funcionar.
Gracias @Ani. Me ayudó bastante. Para mi propio código, también agregué un método que tomaba propertyInfo en lugar de propertyName. – Mithon
¡Muchas gracias! Su muestra de código me ayudó a entender la construcción de expresiones y me permitió hacer lo que quería: D – Shautieh