gpt4 book ai didi

c# - 如何从 MethodCallExpression 访问 OrderBy 子句

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:47 24 4
gpt4 key购买 nike

我有一个处理 MethodCallExpression 的自定义 LINQ 提供程序有一个 OrderBy其中的子句。我怎样才能得到 OrderBy条款以便我可以处理它?<​​/p>

最佳答案

我想通了,这是方法。

    public class QueryContext<T>
{
void Execute(MethodCallExpression dsQueryExpression)
{
var orderByFinder = new OrderByFinder();
var orderByExpression = orderByFinder.GetOrderBy(dsQueryExpression);
// .. Continue on processing the OrderBy expression
}
}

internal class OrderByFinder : ExpressionVisitor
{
MethodCallExpression _orderByExpression;

public MethodCallExpression GetOrderBy(Expression expression)
{
Visit(expression);
return _orderByExpression;
}

protected override Expression VisitMethodCall(MethodCallExpression expression)
{
if (expression.Method.Name == "OrderBy") _orderByExpression = expression;

Visit(expression.Arguments[0]);

return expression;
}
}

关于c# - 如何从 MethodCallExpression 访问 OrderBy 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com