And*_*vko 4 c# linq nhibernate lambda queryover
我的代码就像
DepartmentPaperConsumption dto = null;
Run Code Online (Sandbox Code Playgroud)
然后我有NHibernate QueryOver结果,我想订购它
result.OrderByAlias(() => dto.TotalColorCopys);
Run Code Online (Sandbox Code Playgroud)
但我希望能够dto用字符串动态指定任何属性.我尝试使用动态LINQ,但似乎我无法得到它.我也试过从头开始构建LambdaExpression - 也没有运气.我将不胜感激任何帮助.
你可以在这里看到如何构造lambda ,但在你的情况下它真的很简单:
var arg = Expression.Constant(null, typeof(DepartmentPaperConsumption));
var body = Expression.Convert(Expression.PropertyOrField(arg, propertyName),
typeof(object));
var lambda = Expression.Lambda<Func<object>>(body);
Run Code Online (Sandbox Code Playgroud)
棘手的是调用OrderByAlias- 使用MakeGenericMethod可能是方式,如上面的链接所示.