关于lambda表达式的反射问题

排序时需传递某个参数指明按照哪个字段排序,一个用户表User,有Name和ID属性,按名称或ID排序;传递进来的是order=name,或者order=id;

那么我需要在数据库中这么排序:

allUsers.OrderBy(u => u.Name);

当然Name是我写的,不能通用,只能用反射了。

allUsers.OrderBy(u => u.GetType().GetProperty(order));

这不一定对,不知道此时应该怎么处理。


慕神8447489
浏览 722回答 2
2回答

侃侃无极

这里用反射不好。1——会影响运行效率2——假如是SQL LINQ的话,没办法转换为SQL语句或许可以用下面的方案:1——在方法调用的时候传递一个Lamda表达式而不是传递属性名2——使用动态变量3——(这个方案跟你用反射其实类似了)使用动态变量的字典构建。

沧海一幻觉

构建一个查询表达式,然后再去进行查询
打开App,查看更多内容
随时随地看视频慕课网APP