C# 根据字段名称取得对象的Lambda表达式

发布时间 2023-08-16 11:37:14作者: Mr_Xul
/// <summary>
/// 根据字段名称取得对象的Lambda表达式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="column"></param>
/// <returns></returns>
public Expression<Func<T, object>> GetEntityLambda<T>(string column)
{
    // 创建一个表示输入参数的ParameterExpression
    var parameter = Expression.Parameter(typeof(T), "x");
    // 创建一个表示字段访问的MemberExpression
    var property = Expression.Property(parameter, column);
    // 创建Lambda表达式,参数为输入参数,主体为属性访问表达式
    var lambdaExpression = Expression.Lambda<Func<T, object>>(property, parameter);
    return lambdaExpression;
}