Interface ISchemeSyncProvider

Assembly: redb.Core.dll

Provider for scheme and structure management (Code-First).

public interface ISchemeSyncProvider

Properties

Cache

Domain-bound metadata cache for this provider.

GlobalMetadataCache Cache { get; }

ListCache

Domain-bound list cache for this provider.

GlobalListCache ListCache { get; }

PropsCache

Domain-bound props/object cache for this provider.

GlobalPropsCache PropsCache { get; }

Methods

EnsureObjectSchemeAsync(string)

Get or create scheme for Object type (without Props).

Task<IRedbScheme> EnsureObjectSchemeAsync(string name)

EnsureSchemeFromTypeAsync<TProps>()

Create/get scheme by name from Props type.

Task<IRedbScheme> EnsureSchemeFromTypeAsync<TProps>() where TProps : class

GetObjectSchemeAsync(string)

Get scheme for Object type by name.

Task<IRedbScheme?> GetObjectSchemeAsync(string name)

GetSchemeAliasForType(Type)

Get scheme alias for C# class type.

string? GetSchemeAliasForType(Type type)

GetSchemeAliasForType<TProps>()

Get scheme alias for C# class type.

string? GetSchemeAliasForType<TProps>() where TProps : class

GetSchemeByIdAsync(long)

Get scheme by ID.

Task<IRedbScheme?> GetSchemeByIdAsync(long schemeId)

GetSchemeByNameAsync(string)

Get scheme by name.

Task<IRedbScheme?> GetSchemeByNameAsync(string schemeName)

GetSchemeByTypeAsync(Type)

Get scheme by C# class type.

Task<IRedbScheme?> GetSchemeByTypeAsync(Type type)

GetSchemeByTypeAsync<TProps>()

Get scheme by C# class type.

Task<IRedbScheme?> GetSchemeByTypeAsync<TProps>() where TProps : class

GetSchemeFromCache(string)

Get scheme from cache synchronously (no DB call).

IRedbScheme? GetSchemeFromCache(string schemeName)

GetSchemeFromCache<TProps>()

Get scheme from cache synchronously (no DB call).

IRedbScheme? GetSchemeFromCache<TProps>() where TProps : class

GetSchemeNameForType(Type)

Get scheme name for C# class type.

string GetSchemeNameForType(Type type)

GetSchemeNameForType<TProps>()

Get scheme name for C# class type.

string GetSchemeNameForType<TProps>() where TProps : class

GetSchemesAsync()

Get all schemes.

Task<List<IRedbScheme>> GetSchemesAsync()

GetStructuresAsync(IRedbScheme)

Get scheme structures.

Task<List<IRedbStructure>> GetStructuresAsync(IRedbScheme scheme)

GetStructuresByTypeAsync(Type)

Get scheme structures by C# class type.

Task<List<IRedbStructure>> GetStructuresByTypeAsync(Type type)

GetStructuresByTypeAsync<TProps>()

Get scheme structures by C# class type.

Task<List<IRedbStructure>> GetStructuresByTypeAsync<TProps>() where TProps : class

GetStructureTreeAsync(long)

Get structure tree for scheme (cached).

Task<List<StructureTreeNode>> GetStructureTreeAsync(long schemeId)

GetStructureTreeCacheStats()

Get structure tree cache statistics.

(int TreesCount, int SubtreesCount, long MemoryEstimate) GetStructureTreeCacheStats()

GetSubtreeAsync(long, long?)

Get subtree starting from parent structure (cached).

Task<List<StructureTreeNode>> GetSubtreeAsync(long schemeId, long? parentStructureId)

InvalidateStructureTreeCache(long)

Invalidate structure tree cache for scheme.

void InvalidateStructureTreeCache(long schemeId)

LoadSchemeByTypeAsync(Type)

Load scheme by C# class type (throws exception if not found).

Task<IRedbScheme> LoadSchemeByTypeAsync(Type type)

LoadSchemeByTypeAsync<TProps>()

Load scheme by C# class type (throws exception if not found).

Task<IRedbScheme> LoadSchemeByTypeAsync<TProps>() where TProps : class

MigrateStructureTypeAsync(long, string, string, bool)

Migrate data when changing structure type (e.g. String -> Long).

Task<TypeMigrationResult> MigrateStructureTypeAsync(long structureId, string oldTypeName, string newTypeName, bool dryRun = false)

SchemeExistsByNameAsync(string)

Check if scheme exists by name.

Task<bool> SchemeExistsByNameAsync(string schemeName)

SchemeExistsForTypeAsync(Type)

Check if scheme exists for C# class type.

Task<bool> SchemeExistsForTypeAsync(Type type)

SchemeExistsForTypeAsync<TProps>()

Check if scheme exists for C# class type.

Task<bool> SchemeExistsForTypeAsync<TProps>() where TProps : class

SyncSchemeAsync<TProps>()

Simplified scheme synchronization method with auto-detection of name and alias.

Task<IRedbScheme> SyncSchemeAsync<TProps>() where TProps : class

SyncStructuresFromTypeAsync<TProps>(IRedbScheme, bool)

Synchronize scheme structures from Props type (by default deletes extra fields).

Task<List<IRedbStructure>> SyncStructuresFromTypeAsync<TProps>(IRedbScheme scheme, bool strictDeleteExtra = true) where TProps : class