我编写了一个 LINQ-Provider,它运行良好,但有一个例外。它将 LINQ 查询转换为 ODATA URL 标准。
如果我有以下 LINQ 语句:
.Select(x => x.Name.ToLower()).OrderByDescending(x => x)
当我用表达式访问者访问表达式树时,我会得到一个表达式部分(OrderByDescending),它的类型是ParameterExpression。
我现在的问题是:如何获得选定的 x.Name.ToLower() 表达式?这样我就可以将 orderBy 语句翻译为
$orderby=tolower(Name) desc
// 编辑:换句话说:我有一个 ParameterExpression {x => x}。我希望将此表达式解析为 {x => x.Name.ToLower()}