C#中根据传入的字符串字段返回实体Lambda表达式

这篇博客探讨了在编程中如何根据字符串字段名称动态构建Lambda表达式,以操作实体对象。通过创建表达式参数、构建表达式体并构造Lambda表达式,实现了对未知字段的灵活操作,这对于处理动态数据查询和排序场景非常有用。

        我们在操作实体的时候,经常会使用到Lambda表达式,如下所示就是对实体IOT_Sample的CrtTime进行操作:

var ret = NestExtension.GetSort<IOT_Sample>(m => m.CrtTime, true);

        但是往往有些时候我们具体的业务只告诉我们该实体的某个字段名称(字符串类型的),这个时候我们就需要根据传过来的字符串字段名称返回该实体对应字段的Lambda表达式,具体代码实现如下:

//创建表达式参数(指定参数或变量的类型)
var param = Expression.Parameter(typeof(T), "t");

//构建表达式体(类型包含指定的属性)
var body = Expression.Property(param, "CrtTime");

//根据参数和表达式体构造一个Lambda表达式
var fieldExp = Expression.Lambda<Func<T, object>>(Expression.Convert(body, typeof(object)), param);

        上述代码中的fieldExp结果就是我们想要的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值