using MySqlConnector; namespace Tiger.Storage; public class DatabaseConnection : IAsyncDisposable { private readonly MySqlConnection _connection; private readonly MySqlCommand _command; public DatabaseConnection(MySqlConnection connection) { _connection = connection; _command = connection.CreateCommand(); } public async Task GetResultSet(string query, params (string, object)[] mysqlParams) { await _connection.OpenAsync(); _command.CommandText = query; foreach (var mysqlParam in mysqlParams) { _command.Parameters.AddWithValue(mysqlParam.Item1, mysqlParam.Item2); } var reader = await _command.ExecuteReaderAsync(); _command.Parameters.Clear(); return reader; } public async ValueTask DisposeAsync() { await _connection.DisposeAsync(); await _command.DisposeAsync(); GC.SuppressFinalize(this); } }