IQueryExpression ISqlExpressionWalkable.Walk(bool skipColumns, Func <IQueryExpression, IQueryExpression> func) { Insert?.Walk(skipColumns, func); Update?.Walk(skipColumns, func); Delete?.Walk(skipColumns, func); Select.Walk(skipColumns, func); From.Walk(skipColumns, func); Where.Walk(skipColumns, func); GroupBy.Walk(skipColumns, func); Having.Walk(skipColumns, func); OrderBy.Walk(skipColumns, func); if (HasUnion) { foreach (var union in Unions) { union.SelectQuery.Walk(skipColumns, func); } } return(func(this)); }