Class RedbContextBase

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

Base class for REDB context.
Provides common logic and shortcuts.
DB-specific implementations inherit from this.

public abstract class RedbContextBase : IRedbContext, IAsyncDisposable, IDisposable

Inheritance

ObjectRedbContextBase

Implements

Derived

Properties

Bulk

Bulk operations.

public abstract IBulkOperations Bulk { get; }

CurrentTransaction

Current active transaction.

public IRedbTransaction? CurrentTransaction { get; }

Db

Database connection.

public abstract IRedbConnection Db { get; }

Keys

Key generator.

public abstract IKeyGenerator Keys { get; }

Methods

BeginTransactionAsync()

Begin new transaction.

public Task<IRedbTransaction> BeginTransactionAsync()

Dispose()

Dispose context and all components synchronously.

public virtual void Dispose()

DisposeAsync()

Dispose context and all components asynchronously.

public virtual ValueTask DisposeAsync()

ExecuteAsync(string, params object[])

Execute SQL command (INSERT, UPDATE, DELETE).

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

ExecuteAtomicAsync(Func<Task>)

Execute operations atomically.

public Task ExecuteAtomicAsync(Func<Task> operations)

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

Execute operations atomically and return result.

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

ExecuteJsonAsync(string, params object[])

Execute SQL returning JSON.

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

ExecuteJsonListAsync(string, params object[])

Execute SQL returning multiple JSON rows.

public Task<List<string>> ExecuteJsonListAsync(string sql, params object[] parameters)

ExecuteScalarAsync<T>(string, params object[])

Execute SQL query and return scalar value.

public Task<T?> ExecuteScalarAsync<T>(string sql, params object[] parameters)

NextObjectIdAsync()

Get next object ID.

public Task<long> NextObjectIdAsync()

NextObjectIdBatchAsync(int)

Get batch of object IDs.

public Task<long[]> NextObjectIdBatchAsync(int count)

NextValueIdAsync()

Get next value ID.

public Task<long> NextValueIdAsync()

NextValueIdBatchAsync(int)

Get batch of value IDs.

public Task<long[]> NextValueIdBatchAsync(int count)

QueryAsync<T>(string, params object[])

Execute SQL query and return list of mapped objects.

public 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.

public 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).

public Task<List<T>> QueryScalarListAsync<T>(string sql, params object[] parameters)