【发布时间】:2011-07-16 08:33:30
【问题描述】:
我想创建一个只知道字段名称的 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;
}
上面的问题是字段类型必须是强类型的。将“对象”作为字段类型传入是行不通的。有没有办法生成这个?甚至动态 LINQ 似乎也不起作用。
【问题讨论】:
标签: c# linq dynamic expression-trees