protected virtual void VisitQuery(ODataQueryExpression node)
 {
     this.Visit(node.Filter);
     foreach (var key in node.OrderBy)
     {
         this.Visit(key);
     }
     foreach (var col in node.Select)
     {
         this.Visit(col);
     }
 }
 protected virtual void VisitQuery(ODataQueryExpression node)
 {
     this.Visit(node.Filter);
     foreach (var key in node.OrderBy)
     {
         this.Visit(key);
     }
     foreach (var col in node.Select)
     {
         this.Visit(col);
     }
 }
 private static ODataQueryExpression Take(ODataQueryExpression query, int take)
 {
     return query.Update(top: Math.Min(query.Top ?? int.MaxValue, take));
 }