Interface IRedbConnection

Namespace: redb.Core.Data
Assembly: redb.Core.dll

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

ConnectionString

Connection string used for this connection.

string ConnectionString { get; }

CurrentTransaction

Currently active transaction (null if no transaction).

IRedbTransaction? CurrentTransaction { get; }

Methods

BeginTransactionAsync()

Begin new transaction.

Task<IRedbTransaction> BeginTransactionAsync()

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)