0

的排序依據statment不是由Azure Table中存儲LINQ提供程序我有一個像如何使用ExpressionVisitor從ExpressionTree中刪除OrderBy表達式?

.Where(t => (t.RowKey.CompareTo("U_") > 0)).OrderBy(user => user.UserName) 

表達式我試圖從表達式樹中刪除.OrderBy(user => user.UserName)

我也想遊客刪除支持從下面的表達式的OrderBy statment

.Where(t => (t.RowKey.CompareTo("U_") > 0)).OrderBy(user => user.UserName).Take(10) 

將變得

.Where(t => (t.RowKey.CompareTo("U_") > 0)).Take(10) 

回答

0

這是訪客實施。

class OrderByRemovalVisitor : ExpressionVisitor 
{ 

    protected override Expression VisitMethodCall(MethodCallExpression node) 
    { 

     if (node.Method.Name == "OrderBy" && node.Method.DeclaringType == typeof(Queryable)) 
      return node.Arguments[0]; 
     else 
      return base.VisitMethodCall(node); 
    } 
} 
相關問題