Class ConnectionManager
Manages MySQL database connections — registration, pooling, health checking, and transaction orchestration for multiple named connection IDs.
public sealed class ConnectionManager
- Inheritance
-
ConnectionManager
- Inherited Members
Constructors
ConnectionManager(ILogger?, IEventBus?)
Creates a ConnectionManager.
public ConnectionManager(ILogger? logger = null, IEventBus? events = null)
Parameters
loggerILoggerOptional logger.
eventsIEventBusOptional event bus for publishing connection events.
Methods
CloseConnectionAsync(MySqlConnection)
Closes the connection and publishes a DatabaseDisconnectedEvent.
public Task CloseConnectionAsync(MySqlConnection connection)
Parameters
connectionMySqlConnection
Returns
ExecuteWithConnectionAsync<TResult>(Func<MySqlConnection, Task<TResult>>, string, CancellationToken)
Opens a connection, executes the given action, closes the connection, and returns the result.
public Task<TResult> ExecuteWithConnectionAsync<TResult>(Func<MySqlConnection, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)
Parameters
actionFunc<MySqlConnection, Task<TResult>>connectionIdstringctCancellationToken
Returns
- Task<TResult>
Type Parameters
TResult
ExecuteWithTransactionAsync<TResult>(Func<MySqlConnection, MySqlTransaction, Task<TResult>>, string, CancellationToken)
Opens a connection, begins a transaction, executes the action, commits, and returns the result. Rolls back automatically on exception.
public Task<TResult> ExecuteWithTransactionAsync<TResult>(Func<MySqlConnection, MySqlTransaction, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)
Parameters
actionFunc<MySqlConnection, MySqlTransaction, Task<TResult>>connectionIdstringctCancellationToken
Returns
- Task<TResult>
Type Parameters
TResult
GetAllConnectionCounts()
Returns a snapshot of open connection counts for all registered IDs.
public IReadOnlyDictionary<string, int> GetAllConnectionCounts()
Returns
GetConfiguration(string)
Returns the configuration for the given connection ID, or null if not found.
public MySqlDatabaseConfig? GetConfiguration(string connectionId = "Default")
Parameters
connectionIdstring
Returns
GetConnectionIds()
Returns the registered connection IDs.
public IEnumerable<string> GetConnectionIds()
Returns
GetConnectionString(string)
Builds the ADO.NET connection string for the given connection ID.
public string GetConnectionString(string connectionId = "Default")
Parameters
connectionIdstring
Returns
GetOpenConnectionCount(string)
Returns the current open connection count for the given connection ID.
public int GetOpenConnectionCount(string connectionId = "Default")
Parameters
connectionIdstring
Returns
GetServerInfoAsync(string, CancellationToken)
Retrieves version and database metadata from the MySQL server.
public Task<ServerInfo> GetServerInfoAsync(string connectionId = "Default", CancellationToken ct = default)
Parameters
connectionIdstringctCancellationToken
Returns
HasConfiguration(string)
Returns true when a configuration exists for the given connection ID.
public bool HasConfiguration(string connectionId = "Default")
Parameters
connectionIdstring
Returns
OpenConnectionAsync(string, CancellationToken)
Opens and returns a new MySqlConnector.MySqlConnection for the given connection ID. Publishes a DatabaseConnectedEvent on success.
public Task<MySqlConnection> OpenConnectionAsync(string connectionId = "Default", CancellationToken ct = default)
Parameters
connectionIdstringctCancellationToken
Returns
- Task<MySqlConnection>
RegisterConfiguration(MySqlDatabaseConfig, string)
Registers (or replaces) a connection configuration under a given ID.
public void RegisterConfiguration(MySqlDatabaseConfig config, string connectionId = "Default")
Parameters
configMySqlDatabaseConfigconnectionIdstring
TestConnectionAsync(string, CancellationToken)
Tests connectivity for the given connection ID. Returns true on success, false on failure (does not throw).
public Task<bool> TestConnectionAsync(string connectionId = "Default", CancellationToken ct = default)
Parameters
connectionIdstringctCancellationToken