c# - 如何动态构建 () => x.prop lambda 表达式?

标签 c# linq nhibernate lambda queryover

我有这样的代码

DepartmentPaperConsumption dto = null;

然后我有 NHibernate QueryOver 结果,我想订购它

result.OrderByAlias(() => dto.TotalColorCopys);

但我希望能够使用字符串动态指定 dto 的任何属性。 我尝试使用 Dynamic LINQ但似乎我就是无法理解。 我还尝试从头开始构建 LambdaExpression - 也没有运气。 如果有任何帮助,我将不胜感激。

最佳答案

您可以看到如何构建 lambda here ,但在你的情况下它真的很简单:

var arg = Expression.Constant(null, typeof(DepartmentPaperConsumption));
var body = Expression.Convert(Expression.PropertyOrField(arg, propertyName),
    typeof(object));
var lambda = Expression.Lambda<Func<object>>(body);

棘手的事情是调用 OrderByAlias - 使用 MakeGenericMethod 可能是方法,如上面的链接所示。

关于c# - 如何动态构建 () => x.prop lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4816266/

相关文章:

c# - NAudio 将字节数组转换为 Wav

c# - 如何在不锁定文件的情况下将xml反序列化为对象?

nhibernate - 有没有一种实用的方法可以从标识列迁移到 hilo 键?

c# - 在 LINQ Select 中多次调用 First() 不好吗?

nhibernate - hql join - 加入的预期路径

Nhibernate 一对一映射问题与子对象插入错误

c# - 如何在歌曲中存储评分?

c# - MemoryCache OutOfMemoryException

c# - Linq - 如何组合两个枚举

c# - 在linq查询结果中使用foreach的问题