SQLite Database Connection (SqliteDatabaseConnection) Class
Namespace: Cxt.Account.Settings.API.DatabaseInherits from: BaseDatabaseConnectionImplements: IDatabaseConnection (via BaseDatabaseConnection)
Concrete IDatabaseConnection for SQLite, using Microsoft.Data.Sqlite.
Purpose
- Establishes SQLite DB connection via connection string.
- Creates
SqliteCommandobjects for SQLite execution. Enables the API to use SQLite (e.g.,AccountSettings.db), relying onBaseDatabaseConnectionfor common database operation logic.
Constructor: SqliteDatabaseConnection
csharp
public SqliteDatabaseConnection(string connectionString)- Description: Initializes a new instance of the
SqliteDatabaseConnectionclass. - Parameters:
Parameter Type Description connectionStringstringThe SQLite connection string (e.g., Data Source=AccountSettings.db). - Behavior: Initializes a
new Microsoft.Data.Sqlite.SqliteConnection(connectionString)and passes it to theBaseDatabaseConnectionconstructor.
Overridden Methods
Create Command
csharp
protected override System.Data.Common.DbCommand CreateCommand(string sql)- Overrides:
CreateCommandfromBaseDatabaseConnection. - Description: Creates and returns a
Microsoft.Data.Sqlite.SqliteCommandspecific to SQLite. - Parameters:
Parameter Type Description sqlstringThe SQL string to be used for the command. - Returns:
System.Data.Common.DbCommand(specifically aMicrosoft.Data.Sqlite.SqliteCommand) ready for execution. - Behavior: Creates and returns
new Microsoft.Data.Sqlite.SqliteCommand(sql, (Microsoft.Data.Sqlite.SqliteConnection)_connection).
How It Works
SqliteDatabaseConnection provides SQLite-specifics to BaseDatabaseConnection:
- Supplies the
SqliteConnection(DbConnection) to the base. - Defines how to create a
SqliteCommand(DbCommand). All other database operations are handled byBaseDatabaseConnectionbut operate on these SQLite-specific objects.
Usage in the API
Registered with DI container, e.g., in Program.cs:
csharp
// Example DI registration (actual code may vary)
builder.Services.AddSingleton<IDatabaseConnection>(sp =>
{
var configuration = sp.GetRequiredService<IConfiguration>();
// Assumes connection string is in appsettings.json
var connectionString = configuration.GetConnectionString("DefaultConnection");
return new SqliteDatabaseConnection(connectionString);
});Allows services like AccountSettingsClient to use IDatabaseConnection for SQLite interactions.