Interface IRedbConnection
Database connection abstraction for REDB.
Replaces DbContext with pure ADO.NET approach.
All methods automatically use CurrentTransaction if active.
public interface IRedbConnection : IAsyncDisposable, IDisposable
Properties
CurrentTransaction
Currently active transaction (null if no transaction).
IRedbTransaction? CurrentTransaction { get; }
Methods
ExecuteAsync(string, params object[])
Execute SQL command (INSERT, UPDATE, DELETE) and return affected rows count.
Task<int> ExecuteAsync(string sql, params object[] parameters)
ExecuteAtomicAsync(Func<Task>)
Execute multiple operations atomically (all-or-nothing).
Task ExecuteAtomicAsync(Func<Task> operations)
ExecuteAtomicAsync<T>(Func<Task<T>>)
Execute multiple operations atomically and return result.
Task<T> ExecuteAtomicAsync<T>(Func<Task<T>> operations)
ExecuteJsonAsync(string, params object[])
Execute raw SQL function returning JSON.
Task<string?> ExecuteJsonAsync(string sql, params object[] parameters)
ExecuteJsonListAsync(string, params object[])
Execute raw SQL function returning multiple JSON rows.
Task<List<string>> ExecuteJsonListAsync(string sql, params object[] parameters)
ExecuteScalarAsync<T>(string, params object[])
Execute SQL query and return scalar value.
Task<T?> ExecuteScalarAsync<T>(string sql, params object[] parameters)
GetUnderlyingConnectionAsync()
Get underlying DbConnection for advanced operations (e.g., COPY protocol).
Task<DbConnection> GetUnderlyingConnectionAsync()
QueryAsync<T>(string, params object[])
Execute SQL query and return list of mapped objects.
Task<List<T>> QueryAsync<T>(string sql, params object[] parameters) where T : new()
QueryFirstOrDefaultAsync<T>(string, params object[])
Execute SQL query and return first result or null.
Task<T?> QueryFirstOrDefaultAsync<T>(string sql, params object[] parameters) where T : class, new()
QueryScalarListAsync<T>(string, params object[])
Execute SQL query and return list of scalar values (first column only).
Task<List<T>> QueryScalarListAsync<T>(string sql, params object[] parameters)