Class VisitorOptions
The construction-time collaborators of BaseExpressionVisitor (and of the visitors derived from it) grouped into a single value, replacing the long constructor parameter list.
public sealed record VisitorOptions : IEquatable<VisitorOptions>
- Inheritance
-
VisitorOptions
- Implements
- Inherited Members
- Extension Methods
Remarks
Immutable after construction. The record shape allows derived visitors and internal translators to
create a variant with with (for example a child visitor with a different
Dim) without repeating every collaborator.
Constructors
VisitorOptions(Type, ISqlDialect, IColumnsProvider, int, IAliasProvider?, IParameterProvider, IQueryRegistry, bool, bool, List<Parameter>, ILogger?, ObjectPool<StringBuilder>?)
The construction-time collaborators of BaseExpressionVisitor (and of the visitors derived from it) grouped into a single value, replacing the long constructor parameter list.
public VisitorOptions(Type EntityType, ISqlDialect Dialect, IColumnsProvider ColumnsProvider, int Dim, IAliasProvider? AliasProvider, IParameterProvider ParameterProvider, IQueryRegistry QueryProvider, bool DontNeedAlias, bool ParamMode, List<Parameter> Params, ILogger? Logger, ObjectPool<StringBuilder>? SbPool = null)
Parameters
EntityTypeTypeDialectISqlDialectColumnsProviderIColumnsProviderDimintAliasProviderIAliasProviderParameterProviderIParameterProviderQueryProviderIQueryRegistryDontNeedAliasboolParamModeboolParamsList<Parameter>LoggerILoggerSbPoolObjectPool<StringBuilder>
Remarks
Immutable after construction. The record shape allows derived visitors and internal translators to
create a variant with with (for example a child visitor with a different
Dim) without repeating every collaborator.
Properties
AliasProvider
public IAliasProvider? AliasProvider { get; init; }
Property Value
ColumnsProvider
public IColumnsProvider ColumnsProvider { get; init; }
Property Value
Dialect
public ISqlDialect Dialect { get; init; }
Property Value
Dim
public int Dim { get; init; }
Property Value
DontNeedAlias
public bool DontNeedAlias { get; init; }
Property Value
EntityType
public Type EntityType { get; init; }
Property Value
IncludeNestedSources
When true the source lookups also consider the entries of nested commands
that have already finished rendering. A derived query exposes its output columns by re-rendering
the projection expression, which references the nested command's own sources; those entries are
otherwise hidden from the enclosing command (see IColumnsProvider.PopSourceScope).
public bool IncludeNestedSources { get; init; }
Property Value
KeywordCase
The letter case in which the visitor emits SQL keywords. Declared as an init-only property so the
record's primary constructor stays source- and binary-compatible; a build stamps it from the
command's resolved KeywordCase.
public KeywordCase KeywordCase { get; init; }
Property Value
Logger
public ILogger? Logger { get; init; }
Property Value
NamingConvention
Convention applied to auto-derived table and column names, or null to emit
them as-is. Declared as an init-only property so the record's primary constructor stays
source- and binary-compatible for existing callers. Derived visitors carry it through
with.
public INamingConvention? NamingConvention { get; init; }
Property Value
ParamMode
public bool ParamMode { get; init; }
Property Value
ParameterNamePrefix
A prefix prepended to the name of a parameter produced for a captured member (a closure variable/field), so a batch can render several statements that capture variables of the same name without their placeholders colliding. Empty for a standalone statement. Declared as an init-only property so the record's primary constructor stays source-compatible.
public string ParameterNamePrefix { get; init; }
Property Value
ParameterProvider
public IParameterProvider ParameterProvider { get; init; }
Property Value
Params
public List<Parameter> Params { get; init; }
Property Value
QueryProvider
public IQueryRegistry QueryProvider { get; init; }
Property Value
QuoteIdentifiers
Whether physical identifiers (table and column names) are quoted with the dialect's delimiter.
Declared as an init-only property (rather than a positional parameter) so the record's primary
constructor stays source- and binary-compatible for existing callers. Derived visitors carry it
through with.
public bool QuoteIdentifiers { get; init; }
Property Value
SbPool
public ObjectPool<StringBuilder>? SbPool { get; init; }