Table of Contents

Class VisitorOptions

Namespace
NextORM.Core
Assembly
nextorm.core.dll

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

EntityType Type
Dialect ISqlDialect
ColumnsProvider IColumnsProvider
Dim int
AliasProvider IAliasProvider
ParameterProvider IParameterProvider
QueryProvider IQueryRegistry
DontNeedAlias bool
ParamMode bool
Params List<Parameter>
Logger ILogger
SbPool ObjectPool<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

IAliasProvider

ColumnsProvider

public IColumnsProvider ColumnsProvider { get; init; }

Property Value

IColumnsProvider

Dialect

public ISqlDialect Dialect { get; init; }

Property Value

ISqlDialect

Dim

public int Dim { get; init; }

Property Value

int

DontNeedAlias

public bool DontNeedAlias { get; init; }

Property Value

bool

EntityType

public Type EntityType { get; init; }

Property Value

Type

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

bool

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

KeywordCase

Logger

public ILogger? Logger { get; init; }

Property Value

ILogger

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

INamingConvention

ParamMode

public bool ParamMode { get; init; }

Property Value

bool

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

string

ParameterProvider

public IParameterProvider ParameterProvider { get; init; }

Property Value

IParameterProvider

Params

public List<Parameter> Params { get; init; }

Property Value

List<Parameter>

QueryProvider

public IQueryRegistry QueryProvider { get; init; }

Property Value

IQueryRegistry

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

bool

SbPool

public ObjectPool<StringBuilder>? SbPool { get; init; }

Property Value

ObjectPool<StringBuilder>