Interface IRedbContext

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

Main database context interface for REDB.
Facade over connection, key generator, and bulk operations.
Replaces EF Core DbContext.

public interface IRedbContext : IAsyncDisposable, IDisposable

Properties

Bulk

Bulk operations (COPY protocol).

IBulkOperations Bulk { get; }

CurrentTransaction

Current active transaction (null if none).

IRedbTransaction? CurrentTransaction { get; }

Db

Database connection for queries and commands.

IRedbConnection Db { get; }

Keys

Key generator with caching.

IKeyGenerator Keys { get; }

Methods

BeginTransactionAsync()

Begin new transaction.

Task<IRedbTransaction> BeginTransactionAsync()

ExecuteAsync(string, params object[])

Execute SQL command (INSERT, UPDATE, DELETE).

Task<int> ExecuteAsync(string sql, params object[] parameters)

ExecuteAtomicAsync(Func<Task>)

Execute operations atomically (all-or-nothing).

Task ExecuteAtomicAsync(Func<Task> operations)

ExecuteAtomicAsync<T>(Func<Task<T>>)

Execute operations atomically and return result.

Task<T> ExecuteAtomicAsync<T>(Func<Task<T>> operations)

ExecuteJsonAsync(string, params object[])

Execute SQL returning JSON.

Task<string?> ExecuteJsonAsync(string sql, params object[] parameters)

ExecuteJsonListAsync(string, params object[])

Execute SQL 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)

NextObjectIdAsync()

Get next object ID.

Task<long> NextObjectIdAsync()

NextObjectIdBatchAsync(int)

Get batch of object IDs.

Task<long[]> NextObjectIdBatchAsync(int count)

NextValueIdAsync()

Get next value ID.

Task<long> NextValueIdAsync()

NextValueIdBatchAsync(int)

Get batch of value IDs.

Task<long[]> NextValueIdBatchAsync(int count)

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)