Table of Contents

Class MySqlDatabaseFactory

Namespace
LfrlAnvil.MySql
Assembly
LfrlAnvil.MySql.dll

Represents a factory of SQL databases.

public sealed class MySqlDatabaseFactory : SqlDatabaseFactory<MySqlDatabase>, ISqlDatabaseFactory
Inheritance
MySqlDatabaseFactory
Implements
Inherited Members

Remarks

MySqlDialect implementation.

Constructors

MySqlDatabaseFactory(MySqlDatabaseFactoryOptions?)

Creates a new MySqlDatabaseFactory instance.

public MySqlDatabaseFactory(MySqlDatabaseFactoryOptions? options = null)

Parameters

options MySqlDatabaseFactoryOptions?

Optional MySqlDatabaseFactoryOptions. Equal to Default by default.

Properties

Options

MySqlDatabaseFactoryOptions instance associated with this factory that contains DB creation options.

public MySqlDatabaseFactoryOptions Options { get; }

Property Value

MySqlDatabaseFactoryOptions

Methods

CreateCommitVersionsContext(SqlParameterBinderFactory, SqlCreateDatabaseOptions)

Creates a new SqlDatabaseCommitVersionsContext instance, used for managing application of versions to the database.

protected override SqlDatabaseCommitVersionsContext CreateCommitVersionsContext(SqlParameterBinderFactory parameterBinders, SqlCreateDatabaseOptions options)

Parameters

parameterBinders SqlParameterBinderFactory

Parameter binder factory.

options SqlCreateDatabaseOptions

DB creation options.

Returns

SqlDatabaseCommitVersionsContext

New SqlDatabaseCommitVersionsContext instance.

CreateConnection(DbConnectionStringBuilder)

Creates a new unopened DbConnection instance.

[Pure]
protected override MySqlConnection CreateConnection(DbConnectionStringBuilder connectionString)

Parameters

connectionString DbConnectionStringBuilder

Connection string builder.

Returns

MySqlConnection

New DbConnection instance.

CreateConnectionStringBuilder(string)

Creates a new DbConnectionStringBuilder instance.

[Pure]
protected override MySqlConnectionStringBuilder CreateConnectionStringBuilder(string connectionString)

Parameters

connectionString string

Connection string.

Returns

MySqlConnectionStringBuilder

New DbConnectionStringBuilder instance.

CreateDatabase(SqlDatabaseBuilder, DbConnectionStringBuilder, DbConnection, DbConnectionEventHandler, SqlQueryReaderExecutor<SqlDatabaseVersionRecord>, Version)

Creates a new SqlDatabase instance.

protected override MySqlDatabase CreateDatabase(SqlDatabaseBuilder builder, DbConnectionStringBuilder connectionString, DbConnection connection, DbConnectionEventHandler eventHandler, SqlQueryReaderExecutor<SqlDatabaseVersionRecord> versionHistoryRecordsQuery, Version version)

Parameters

builder SqlDatabaseBuilder

Source database builder.

connectionString DbConnectionStringBuilder

Connection string builder.

connection DbConnection

Opened connection to the database.

eventHandler DbConnectionEventHandler

Collection of SqlDatabaseConnectionChangeEvent callbacks.

versionHistoryRecordsQuery SqlQueryReaderExecutor<SqlDatabaseVersionRecord>

Query reader's executor capable of reading metadata of all versions applied to the database.

version Version

Current version of the database.

Returns

MySqlDatabase

New SqlDatabase instance.

CreateDatabaseBuilder(string, DbConnection)

Creates a new SqlDatabaseBuilder instance.

[Pure]
protected override MySqlDatabaseBuilder CreateDatabaseBuilder(string defaultSchemaName, DbConnection connection)

Parameters

defaultSchemaName string

Initial name of the Default schema. Version history table will belong to this schema.

connection DbConnection

Opened connection to the database.

Returns

MySqlDatabaseBuilder

New SqlDatabaseBuilder instance.

GetChangeTrackerAttachmentForVersionHistoryTableInit(SqlDatabaseChangeTracker, SqlSchemaObjectName, SqlNodeInterpreter, DbConnection, ref SqlDatabaseFactoryStatementExecutor)

Checks whether or not the version history table should be attached as a change from which an SQL statement should be created and executed.

protected override bool GetChangeTrackerAttachmentForVersionHistoryTableInit(SqlDatabaseChangeTracker changeTracker, SqlSchemaObjectName versionHistoryTableName, SqlNodeInterpreter nodeInterpreter, DbConnection connection, ref SqlDatabaseFactoryStatementExecutor executor)

Parameters

changeTracker SqlDatabaseChangeTracker

Database builder's change tracker.

versionHistoryTableName SqlSchemaObjectName

Name of the version history table.

nodeInterpreter SqlNodeInterpreter

SqlNodeInterpreter instance.

connection DbConnection

Opened connection to the database.

executor SqlDatabaseFactoryStatementExecutor

Decorator for executing SQL statements on the database.

Returns

bool

true when version history table should be created in the database, otherwise false.

Remarks

This method can also be used for registering other common database objects.

GetDefaultVersionHistoryName()

Creates a new SqlSchemaObjectName instance that represents default version history table name.

[Pure]
protected override SqlSchemaObjectName GetDefaultVersionHistoryName()

Returns

SqlSchemaObjectName

New SqlSchemaObjectName instance.

GetVersionHistoryRecordsQueryDelegate(SqlQueryReaderFactory)

Creates a delegate capable of reading metadata of all versions applied to this database.

protected override Func<IDataReader, SqlQueryReaderOptions, SqlQueryResult<SqlDatabaseVersionRecord>> GetVersionHistoryRecordsQueryDelegate(SqlQueryReaderFactory queryReaders)

Parameters

queryReaders SqlQueryReaderFactory

Query reader factory.

Returns

Func<IDataReader, SqlQueryReaderOptions, SqlQueryResult<SqlDatabaseVersionRecord>>

Delegate capable of reading metadata of all versions applied to this database.

VersionHistoryTableBuilderInit(SqlTableBuilder)

Initializes the version history table builder.

protected override void VersionHistoryTableBuilderInit(SqlTableBuilder builder)

Parameters

builder SqlTableBuilder

Version history table builder.

Remarks

By default, this method adds the following columns:

  • VersionMajor (int)
  • VersionMinor (int)
  • VersionBuild (nullable int)
  • VersionRevision (nullable int)
  • Description (string)
  • CommitDateUtc (DateTime)
  • CommitDurationInTicks (long)