Database Connection (IDatabaseConnection) Interface
Namespace: Cxt.Account.Settings.API.Abstractions
Inherits: System.IAsyncDisposable
Defines a contract for database connectivity and command execution, abstracting low-level database interaction for components like AccountSettingsClient.
Purpose
This interface is crucial for:
- Managing asynchronous DB connection lifecycle (open/close).
- Executing non-query SQL (INSERT, UPDATE, DELETE), returning affected row count.
- Executing SQL queries, providing a
DbDataReaderfor result iteration. - Ensuring proper resource disposal via
IAsyncDisposable. Defines asynchronous DB operations required by data access components.
Methods
Open Async
csharp
Task OpenAsync(CancellationToken cancellationToken = default);- Description: Asynchronously opens a database connection.
- Parameters:
Parameter Type Default Description cancellationTokenCancellationTokendefault For operation cancellation. - Returns:
Taskfor the async operation.
Close Async
csharp
Task CloseAsync();- Description: Asynchronously closes the database connection.
- Returns:
Taskfor the async operation.
Execute Non Query Async
csharp
Task<int> ExecuteNonQueryAsync(string sql, Dictionary<string, object> parameters, CancellationToken cancellationToken = default);- Description: Asynchronously executes a non-query SQL command.
- Parameters:
Parameter Type Default Description sqlstringSQL command string. parametersDictionary<string, object>SQL parameters dictionary. cancellationTokenCancellationTokendefault For operation cancellation. - Returns:
Task<int>resolving to the number of affected rows.
Execute Reader Async
csharp
Task<System.Data.Common.DbDataReader> ExecuteReaderAsync(string sql, Dictionary<string, object> parameters, CancellationToken cancellationToken = default);- Description: Asynchronously executes a SQL query returning a result set.
- Parameters:
Parameter Type Default Description sqlstringSQL query string. parametersDictionary<string, object>SQL parameters dictionary. cancellationTokenCancellationTokendefault For operation cancellation. - Returns:
Task<System.Data.Common.DbDataReader>resolving to aDbDataReaderfor result set iteration. The caller is responsible for disposing the reader.
Implementers
Concrete classes (e.g., SqliteDatabaseConnection, SqlServerDatabaseConnection), typically inheriting from BaseDatabaseConnection, implement this interface for specific database systems.
Consumers
AccountSettingsClient: Uses anIDatabaseConnectioninstance for database interactions. (SeeData Access Client & Logic.
This interface is fundamental to the data access abstraction layer, promoting loose coupling and testability.