依米纺织陈德勇 发表于 2024-1-29 18:15:20

C#中根据传入的字符串字段返回实体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结果就是我们想要的!

来源:https://www.cnblogs.com/qubernet/p/17994390
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: C#中根据传入的字符串字段返回实体Lambda表达式