Table of Contents

Class SqlDatabaseBuilder

Namespace
LfrlAnvil.Sql.Objects.Builders
Assembly
LfrlAnvil.Sql.Core.dll

Represents an SQL database builder.

public abstract class SqlDatabaseBuilder : SqlBuilderApi, ISqlDatabaseBuilder
Inheritance
SqlDatabaseBuilder
Implements
Derived
Inherited Members

Constructors

SqlDatabaseBuilder(SqlDialect, string, string, ISqlDataTypeProvider, SqlColumnTypeDefinitionProvider, ISqlNodeInterpreterFactory, SqlQueryReaderFactory, SqlParameterBinderFactory, SqlDefaultObjectNameProvider, SqlSchemaBuilderCollection, SqlDatabaseChangeTracker)

Creates a new SqlDatabaseBuilder instance.

protected SqlDatabaseBuilder(SqlDialect dialect, string serverVersion, string defaultSchemaName, ISqlDataTypeProvider dataTypes, SqlColumnTypeDefinitionProvider typeDefinitions, ISqlNodeInterpreterFactory nodeInterpreters, SqlQueryReaderFactory queryReaders, SqlParameterBinderFactory parameterBinders, SqlDefaultObjectNameProvider defaultNames, SqlSchemaBuilderCollection schemas, SqlDatabaseChangeTracker changes)

Parameters

dialect SqlDialect

Specifies the SQL dialect of this database.

serverVersion string

Current ServerVersion of this database.

defaultSchemaName string

Name of the default DB schema.

dataTypes ISqlDataTypeProvider

Provider of SQL data types.

typeDefinitions SqlColumnTypeDefinitionProvider

Provider of column type definitions.

nodeInterpreters ISqlNodeInterpreterFactory

Factory of node interpreters.

queryReaders SqlQueryReaderFactory

Factory of query readers.

parameterBinders SqlParameterBinderFactory

Factory of parameter binders.

defaultNames SqlDefaultObjectNameProvider

Provider of default SQL object names.

schemas SqlSchemaBuilderCollection

Collection of schemas defined in this database.

changes SqlDatabaseChangeTracker

Tracker of changes applied to this database.

Properties

Changes

Tracker of changes applied to this database.

public SqlDatabaseChangeTracker Changes { get; }

Property Value

SqlDatabaseChangeTracker

DataTypes

Provider of SQL data types.

public ISqlDataTypeProvider DataTypes { get; }

Property Value

ISqlDataTypeProvider

DefaultNames

Provider of default SQL object names.

public SqlDefaultObjectNameProvider DefaultNames { get; }

Property Value

SqlDefaultObjectNameProvider

Dialect

Specifies the SQL dialect of this database.

public SqlDialect Dialect { get; }

Property Value

SqlDialect

NodeInterpreters

Factory of node interpreters.

public ISqlNodeInterpreterFactory NodeInterpreters { get; }

Property Value

ISqlNodeInterpreterFactory

ParameterBinders

Factory of parameter binders.

public SqlParameterBinderFactory ParameterBinders { get; }

Property Value

SqlParameterBinderFactory

QueryReaders

Factory of query readers.

public SqlQueryReaderFactory QueryReaders { get; }

Property Value

SqlQueryReaderFactory

Schemas

Collection of schemas defined in this database.

public SqlSchemaBuilderCollection Schemas { get; }

Property Value

SqlSchemaBuilderCollection

ServerVersion

Current ServerVersion of this database.

public string ServerVersion { get; }

Property Value

string

TypeDefinitions

Provider of column type definitions.

public SqlColumnTypeDefinitionProvider TypeDefinitions { get; }

Property Value

SqlColumnTypeDefinitionProvider

UserData

Represents a custom data that can be sent between different DB versions.

public object? UserData { get; set; }

Property Value

object

Methods

AddConnectionChangeCallback(Action<SqlDatabaseConnectionChangeEvent>)

public SqlDatabaseBuilder AddConnectionChangeCallback(Action<SqlDatabaseConnectionChangeEvent> callback)

Parameters

callback Action<SqlDatabaseConnectionChangeEvent>

Callback to add.

Returns

SqlDatabaseBuilder

this.

IsValidName(SqlObjectType, string)

Checks whether or not the provided name is valid for a given objectType.

[Pure]
public virtual bool IsValidName(SqlObjectType objectType, string name)

Parameters

objectType SqlObjectType

Object's type.

name string

Object's name to validate.

Returns

bool

true when name is valid, otherwise false.

ThrowIfNameIsInvalid(SqlObjectType, string)

Throws an exception when the provided name is not valid for a given objectType.

public void ThrowIfNameIsInvalid(SqlObjectType objectType, string name)

Parameters

objectType SqlObjectType

Object's type.

name string

Object's name to validate.

Exceptions

SqlObjectBuilderException

When name is not valid.