【发布时间】:2010-03-10 14:18:21
【问题描述】:
我有一个通过子句生成表达式的方法,如下所示:
internal static Expression<Func<TModel, T>> GenExpressionByClause<TModel, T>(string column)
{
PropertyInfo columnPropInfo = typeof(TModel).GetProperty(column);
var entityParam = Expression.Parameter(typeof(TModel), "e"); // {e}
var columnExpr = Expression.MakeMemberAccess(entityParam, columnPropInfo); // {e.column}
var lambda = Expression.Lambda(columnExpr, entityParam) as Expression<Func<TModel, T>>; // {e => e.column}
return lambda;
}
所以我可以将 lambda 表达式构建为 e=>e.column。
但我想将其更改为e=>string.Format("{0}",e.column)。如何重构代码?
【问题讨论】: