Class QueryVisitorExtensions
  
  
  
    - Namespace
 - LinqToDB.SqlQuery
 
  - Assembly
 - linq2db.dll
 
   
  
  
  
    public static class QueryVisitorExtensions
   
  
    - Inheritance
 
    - 
      
      
QueryVisitorExtensions
     
  
  
    - Inherited Members
 
    - 
    
    
    
    
    
    
    
  
 
  Methods
  
  
  Clone<T>(T?)
  
  
  
  
  
    public static T? Clone<T>(this T? element) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  Clone<T>(T?, Dictionary<IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T? Clone<T>(this T? element, Dictionary<IQueryElement, IQueryElement> objectTree) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    objectTree Dictionary<IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  Clone<T>(T?, Func<IQueryElement, bool>)
  
  
  
  
  
    public static T? Clone<T>(this T? element, Func<IQueryElement, bool> doClone) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    doClone Func<IQueryElement, bool> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  Clone<T>(T[]?, Dictionary<IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T[]? Clone<T>(this T[]? elements, Dictionary<IQueryElement, IQueryElement> objectTree) where T : class, IQueryElement
   
  Parameters
  
    elements T[] 
    
    objectTree Dictionary<IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T[]
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  Clone<T, TContext>(T?, TContext, Dictionary<IQueryElement, IQueryElement>, Func<TContext, IQueryElement, bool>)
  
  
  
  
  
    public static T? Clone<T, TContext>(this T? element, TContext context, Dictionary<IQueryElement, IQueryElement> objectTree, Func<TContext, IQueryElement, bool> doClone) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    objectTree Dictionary<IQueryElement, IQueryElement> 
    
    doClone Func<TContext, IQueryElement, bool> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
    TContext 
    
  
  
  
  Clone<T, TContext>(T?, TContext, Func<TContext, IQueryElement, bool>)
  
  
  
  
  
    public static T? Clone<T, TContext>(this T? element, TContext context, Func<TContext, IQueryElement, bool> doClone) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    doClone Func<TContext, IQueryElement, bool> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
    TContext 
    
  
  
  
  ConvertAll<T>(T, bool, Func<ConvertVisitor<object?>, IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T ConvertAll<T>(this T element, bool allowMutation, Func<ConvertVisitor<object?>, IQueryElement, IQueryElement> convertAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    allowMutation bool 
    
    convertAction Func<ConvertVisitor<object>, IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  ConvertAll<TContext, T>(T, TContext, bool, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T ConvertAll<TContext, T>(this T element, TContext context, bool allowMutation, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    allowMutation bool 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  ConvertAll<TContext, T>(T, TContext, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T ConvertAll<TContext, T>(this T element, TContext context, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  ConvertAll<TContext, T>(T, TContext, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>, Func<ConvertVisitor<TContext>, bool>)
  
  
  
  
  
    public static T ConvertAll<TContext, T>(this T element, TContext context, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction, Func<ConvertVisitor<TContext>, bool> parentAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
    parentAction Func<ConvertVisitor<TContext>, bool> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  Convert<T>(T, Func<ConvertVisitor<object?>, IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T Convert<T>(this T element, Func<ConvertVisitor<object?>, IQueryElement, IQueryElement> convertAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    convertAction Func<ConvertVisitor<object>, IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  Convert<T>(T, Func<ConvertVisitor<object?>, IQueryElement, IQueryElement>, bool)
  
  
  
  
  
    public static T Convert<T>(this T element, Func<ConvertVisitor<object?>, IQueryElement, IQueryElement> convertAction, bool withStack) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    convertAction Func<ConvertVisitor<object>, IQueryElement, IQueryElement> 
    
    withStack bool 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    T 
    
  
  
  
  Convert<TContext, T>(T, TContext, bool, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T Convert<TContext, T>(this T element, TContext context, bool allowMutation, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    allowMutation bool 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  Convert<TContext, T>(T, TContext, bool, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>, bool)
  
  
  
  
  
    public static T Convert<TContext, T>(this T element, TContext context, bool allowMutation, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction, bool withStack) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    allowMutation bool 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
    withStack bool 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  Convert<TContext, T>(T, TContext, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>)
  
  
  
  
  
    public static T Convert<TContext, T>(this T element, TContext context, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  Convert<TContext, T>(T, TContext, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement>, bool)
  
  
  
  
  
    public static T Convert<TContext, T>(this T element, TContext context, Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> convertAction, bool withStack) where T : class, IQueryElement
   
  Parameters
  
    element T 
    
    context TContext 
    
    convertAction Func<ConvertVisitor<TContext>, IQueryElement, IQueryElement> 
    
    withStack bool 
    
  
  Returns
  
    - T
 
    
  
  Type Parameters
  
    TContext 
    
    T 
    
  
  
  
  Find(IQueryElement?, QueryElementType)
  
  
  
  
  
    public static IQueryElement? Find(this IQueryElement? element, QueryElementType type)
   
  Parameters
  
    element IQueryElement 
    
    type QueryElementType 
    
  
  Returns
  
    - IQueryElement
 
    
  
  
  
  Find(IQueryElement?, Func<IQueryElement, bool>)
  
  
  
  
  
    public static IQueryElement? Find(this IQueryElement? element, Func<IQueryElement, bool> find)
   
  Parameters
  
    element IQueryElement 
    
    find Func<IQueryElement, bool> 
    
  
  Returns
  
    - IQueryElement
 
    
  
  
  
  Find<TContext>(IQueryElement?, TContext, Func<TContext, IQueryElement, bool>)
  
  
  
  
  
    public static IQueryElement? Find<TContext>(this IQueryElement? element, TContext context, Func<TContext, IQueryElement, bool> find)
   
  Parameters
  
    element IQueryElement 
    
    context TContext 
    
    find Func<TContext, IQueryElement, bool> 
    
  
  Returns
  
    - IQueryElement
 
    
  
  Type Parameters
  
    TContext 
    
  
  
  
  Visit(IQueryElement, Action<IQueryElement>)
  
  
  
  
  
    public static void Visit(this IQueryElement element, Action<IQueryElement> action)
   
  Parameters
  
    element IQueryElement 
    
    action Action<IQueryElement> 
    
  
  
  
  VisitAll(IQueryElement, Action<IQueryElement>)
  
  
  
  
  
    public static void VisitAll(this IQueryElement element, Action<IQueryElement> action)
   
  Parameters
  
    element IQueryElement 
    
    action Action<IQueryElement> 
    
  
  
  
  VisitAll<TContext>(IQueryElement, TContext, Action<TContext, IQueryElement>)
  
  
  
  
  
    public static void VisitAll<TContext>(this IQueryElement element, TContext context, Action<TContext, IQueryElement> action)
   
  Parameters
  
    element IQueryElement 
    
    context TContext 
    
    action Action<TContext, IQueryElement> 
    
  
  Type Parameters
  
    TContext 
    
  
  
  
  VisitParentFirst(IQueryElement, Func<IQueryElement, bool>)
  
  
  
  
  
    public static void VisitParentFirst(this IQueryElement element, Func<IQueryElement, bool> action)
   
  Parameters
  
    element IQueryElement 
    
    action Func<IQueryElement, bool> 
    
  
  
  
  VisitParentFirstAll(IQueryElement, Func<IQueryElement, bool>)
  
  
  
  
  
    public static void VisitParentFirstAll(this IQueryElement element, Func<IQueryElement, bool> action)
   
  Parameters
  
    element IQueryElement 
    
    action Func<IQueryElement, bool> 
    
  
  
  
  VisitParentFirstAll<TContext>(IQueryElement, TContext, Func<TContext, IQueryElement, bool>)
  
  
  
  
  
    public static void VisitParentFirstAll<TContext>(this IQueryElement element, TContext context, Func<TContext, IQueryElement, bool> action)
   
  Parameters
  
    element IQueryElement 
    
    context TContext 
    
    action Func<TContext, IQueryElement, bool> 
    
  
  Type Parameters
  
    TContext 
    
  
  
  
  VisitParentFirst<TContext>(IQueryElement, TContext, Func<TContext, IQueryElement, bool>)
  
  
  
  
  
    public static void VisitParentFirst<TContext>(this IQueryElement element, TContext context, Func<TContext, IQueryElement, bool> action)
   
  Parameters
  
    element IQueryElement 
    
    context TContext 
    
    action Func<TContext, IQueryElement, bool> 
    
  
  Type Parameters
  
    TContext 
    
  
  
  
  Visit<TContext>(IQueryElement, TContext, Action<TContext, IQueryElement>)
  
  
  
  
  
    public static void Visit<TContext>(this IQueryElement element, TContext context, Action<TContext, IQueryElement> action)
   
  Parameters
  
    element IQueryElement 
    
    context TContext 
    
    action Action<TContext, IQueryElement> 
    
  
  Type Parameters
  
    TContext