Table of Contents

Class SqlQueryVisitor

Namespace
LinqToDB.Internal.SqlQuery.Visitors
Assembly
linq2db.dll

This base visitor implements:

public abstract class SqlQueryVisitor : QueryElementVisitor
Inheritance
SqlQueryVisitor
Derived
Inherited Members
Extension Methods

Constructors

SqlQueryVisitor(VisitMode, IVisitorTransformationInfo?)

protected SqlQueryVisitor(VisitMode visitMode, SqlQueryVisitor.IVisitorTransformationInfo? transformationInfo)

Parameters

visitMode VisitMode
transformationInfo SqlQueryVisitor.IVisitorTransformationInfo

Methods

AddReplacements(IReadOnlyDictionary<IQueryElement, IQueryElement>)

Adds explicit replacement map.

protected void AddReplacements(IReadOnlyDictionary<IQueryElement, IQueryElement> replacements)

Parameters

replacements IReadOnlyDictionary<IQueryElement, IQueryElement>

Cleanup()

Resets visitor to initial state.

public virtual void Cleanup()

GetReplacement(IQueryElement, out IQueryElement?)

Returns replacement element for element if it was registered as replaced.

protected bool GetReplacement(IQueryElement element, out IQueryElement? replacement)

Parameters

element IQueryElement
replacement IQueryElement

Returns

bool

GetReplacements(Dictionary<IQueryElement, IQueryElement>)

Writes registered replacement pairs to objectTree dictionary.

public void GetReplacements(Dictionary<IQueryElement, IQueryElement> objectTree)

Parameters

objectTree Dictionary<IQueryElement, IQueryElement>

GetTransformationInfo()

protected SqlQueryVisitor.IVisitorTransformationInfo GetTransformationInfo()

Returns

SqlQueryVisitor.IVisitorTransformationInfo

GetVisitMode(IQueryElement)

Gets visit mode for query element. Could be overridden to enable element visit mode, which differ from visitor-level mode set by VisitMode.

public override VisitMode GetVisitMode(IQueryElement element)

Parameters

element IQueryElement

Returns

VisitMode

NotifyReplaced(IQueryElement, IQueryElement)

Remembers element replacement.

public override IQueryElement NotifyReplaced(IQueryElement newElement, IQueryElement oldElement)

Parameters

newElement IQueryElement
oldElement IQueryElement

Returns

IQueryElement

ProcessElement(IQueryElement)

Visits element and correct it, if it contains old replaced elements.

public virtual IQueryElement ProcessElement(IQueryElement element)

Parameters

element IQueryElement

Returns

IQueryElement

SetTransformationInfo(IVisitorTransformationInfo?)

protected void SetTransformationInfo(SqlQueryVisitor.IVisitorTransformationInfo? transformationInfo)

Parameters

transformationInfo SqlQueryVisitor.IVisitorTransformationInfo

Visit(IQueryElement?)

Visitor dispatch method.

public override IQueryElement? Visit(IQueryElement? element)

Parameters

element IQueryElement

Returns

IQueryElement

VisitCteClauseReference(CteClause)

Main CteClause visitor is VisitCteClause(CteClause) and called for it from SqlWithClause. This by-ref visitor used for references from SqlCteTable.

protected override IQueryElement VisitCteClauseReference(CteClause element)

Parameters

element CteClause

Returns

IQueryElement