Table of Contents

Class SqliteDatabaseFactory

Namespace
LfrlAnvil.Sqlite
Assembly
LfrlAnvil.Sqlite.dll

Represents a factory of SQL databases.

public sealed class SqliteDatabaseFactory : SqlDatabaseFactory<SqliteDatabase>, ISqlDatabaseFactory
Inheritance
SqliteDatabaseFactory
Implements
Inherited Members

Remarks

SqliteDialect implementation.

Constructors

SqliteDatabaseFactory(SqliteDatabaseFactoryOptions?)

Creates a new SqliteDatabaseFactory instance.

public SqliteDatabaseFactory(SqliteDatabaseFactoryOptions? options = null)

Parameters

options SqliteDatabaseFactoryOptions?

Optional SqliteDatabaseFactoryOptions. Equal to Default by default.

Properties

Options

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

public SqliteDatabaseFactoryOptions Options { get; }

Property Value

SqliteDatabaseFactoryOptions

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 SqliteConnection CreateConnection(DbConnectionStringBuilder connectionString)

Parameters

connectionString DbConnectionStringBuilder

Connection string builder.

Returns

SqliteConnection

New DbConnection instance.

CreateConnectionStringBuilder(string)

Creates a new DbConnectionStringBuilder instance.

[Pure]
protected override SqliteConnectionStringBuilder CreateConnectionStringBuilder(string connectionString)

Parameters

connectionString string

Connection string.

Returns

SqliteConnectionStringBuilder

New DbConnectionStringBuilder instance.

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

Creates a new SqlDatabase instance.

protected override SqliteDatabase 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

SqliteDatabase

New SqlDatabase instance.

CreateDatabaseBuilder(string, DbConnection)

Creates a new SqlDatabaseBuilder instance.

[Pure]
protected override SqliteDatabaseBuilder 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

SqliteDatabaseBuilder

New SqlDatabaseBuilder instance.

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

Checks whether 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.

OnUncaughtException(Exception, DbConnection)

Allows to react to an unexpected exception.

protected override void OnUncaughtException(Exception exception, DbConnection connection)

Parameters

exception Exception

Thrown exception.

connection DbConnection

Opened connection to the database.