我有这样的代码
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/