RedBase Documentation

Welcome to the RedBase documentation portal. Browse the API reference, explore code examples, and learn how to build with REDB.

API Reference

Browse the REDB API documentation. Select a namespace or type from the tree on the left, or click on items below.

Search results for: RedbObject<TProps> Clear search
C GlobalPropsCache redb.Core.Caching
M FilterNeedToLoad<TProps>(List<(long objectId, Guid hash)>, out Dictionary<long, RedbObject<TProps>>) BULK: determine which objects need to be loaded from DB (set difference).
M Set<TProps>(RedbObject<TProps>) Save WHOLE RedbObject to cache.
I ILazyPropsLoader redb.Core.Providers
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?, int?) OPTIMIZED Props loading with structure_ids filter and custom depth.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?) OPTIMIZED Props loading with structure_ids filter.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, int?) BULK Props loading with custom depth for nested RedbObject.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>) BULK Props loading for multiple objects with caching and parallelism.
I IObjectStorageProvider redb.Core.Providers
M AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>, IRedbUser) BULK INSERT with explicit user: Create many new objects (does NOT check permissions).
M AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>) BULK INSERT: Create many new objects in one operation (does NOT check permissions).
M SaveAsync<TProps>(IRedbObject<TProps>, IRedbUser) Save generic object to EAV with explicit user (uses config.DefaultCheckPermissionsOnSave).
M SaveAsync<TProps>(IRedbObject<TProps>) Save generic object to EAV (uses _securityContext and config.DefaultCheckPermissionsOnSave).
I IRedbObject<TProps> redb.Core.Models.Contracts
I IRedbObjectCache redb.Core.Caching
M FilterNeedToLoad<TProps>(List<(long objectId, Guid hash)>, out Dictionary<long, RedbObject<TProps>>) BULK: determine which objects need to be loaded from DB (set difference)
M Set<TProps>(RedbObject<TProps>) Save WHOLE RedbObject to cache
I IRedbQueryable<TProps> redb.Core.Query
M AggregateAsync<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Flexible aggregation - choose what to aggregate via Agg.Sum/Avg/Min/Max/Count.
M Select<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Project fields - return only selected properties.
I IRedbWindowedQueryable<TProps> redb.Core.Query.Window
M ToSqlStringAsync<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Returns SQL string for debugging (like EF Core ToQueryString).
I ITreeProvider redb.Core.Providers
M CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject, IRedbUser) Create child object with explicit user (uses config.DefaultCheckPermissionsOnSave).
M CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject) Create child object (uses _securityContext and config.DefaultCheckPermissionsOnSave).
I ITreeRedbObject<TProps> redb.Core.Models.Contracts
C LazyPropsLoader redb.MSSql.Providers
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?, int?) BULK Props loading with projection filter and custom depth.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?) BULK Props loading with projection filter (for Select projections).
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, int?) BULK Props loading with custom depth for nested RedbObject.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>) BULK Props loading for multiple objects via get_object_json batch.
C LazyPropsLoader redb.Postgres.Providers
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?, int?) BULK Props loading with projection filter and custom depth.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?) BULK Props loading with projection filter (for Select projections).
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, int?) BULK Props loading with custom depth for nested RedbObject.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>) BULK Props loading for multiple objects via get_object_json batch.
C MemoryRedbObjectCache redb.Core.Caching
M Set<TProps>(RedbObject<TProps>) Save WHOLE RedbObject to cache
C ObjectStorageProviderBase redb.Core.Providers.Base
M AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>, IRedbUser) 🚀 BULK INSERT with explicit user: Create multiple new objects (WITHOUT permission checks)
M AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>) 🚀 BULK INSERT: Create multiple new objects in one operation (WITHOUT permission checks)
M SaveAsync<TProps>(IRedbObject<TProps>, IRedbUser) Save generic object to EAV with explicit user (uses config.DefaultCheckPermissionsOnSave).
M SaveAsync<TProps>(IRedbObject<TProps>) Save generic object to EAV (uses _securityContext and config.DefaultCheckPermissionsOnSave).
M SaveAsyncNew<TProps>(IRedbObject<TProps>, IRedbUser) 🚀 NEW SAVEASYNC: Correct recursive processing of all data types
C ProjectionFieldExtractor redb.Core.Query.Projection
M ExtractFieldPathStrings<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Extracts text field paths for SQL function search_objects_with_projection_by_paths.
M HasAggregations<TProps, TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Checks if expression contains aggregation calls (Agg.Sum, etc.)
C ProLazyPropsLoader redb.Core.Pro.Materialization
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?, int?) OPTIMIZED Props loading with structure_ids filter and custom depth.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, HashSet<long>?) OPTIMIZED Props loading with structure_ids filter.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>, int?) BULK Props loading with custom depth for nested RedbObject.
M LoadPropsForManyAsync<TProps>(List<RedbObject<TProps>>) BULK Props loading for multiple objects with caching and parallelism.
C ProTreeProviderBase redb.Core.Pro.Providers
M MapRowToRedbObject<TProps>(RedbObjectRow) Map RedbObjectRow to typed RedbObject.
C QueryProviderBase redb.Core.Query.Base
C RedbObject<TProps> redb.Core.Models.Entities
C RedbObjectFactory redb.Core.Models
M CreateCopyAsync<TProps>(IRedbObject<TProps>, TProps) Create copy of existing object with new properties
C RedbQueryable<TProps> redb.Core.Query
M AggregateAsync<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Flexible aggregation - choose what to aggregate via Agg.Sum/Avg/Min/Max/Count
M Select<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Project fields - return only selected properties.
C RedbServiceBase redb.Core
M AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>, IRedbUser) BULK INSERT with explicit user: Create many new objects (does NOT check permissions).
M AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>) BULK INSERT: Create many new objects in one operation (does NOT check permissions).
M CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject, IRedbUser) Create child object with explicit user (uses config.DefaultCheckPermissionsOnSave).
M CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject) Create child object (uses _securityContext and config.DefaultCheckPermissionsOnSave).
M SaveAsync<TProps>(IRedbObject<TProps>, IRedbUser) Save generic object to EAV with explicit user (uses config.DefaultCheckPermissionsOnSave).
M SaveAsync<TProps>(IRedbObject<TProps>) Save generic object to EAV (uses _securityContext and config.DefaultCheckPermissionsOnSave).
C TreeCollection<TProps> redb.Core.Models.Collections
M Add(ITreeRedbObject<TProps>) Adds typed node to collection
M FindNodes(Func<ITreeRedbObject<TProps>, bool>) Finds typed nodes by predicate
C TreeExtensions redb.Core.Utils
M BreadthFirstTraversal<TProps>(ITreeRedbObject<TProps>) Breadth-First Search tree traversal for typed trees.
M DepthFirstTraversal<TProps>(ITreeRedbObject<TProps>) Depth-First Search tree traversal - pre-order for typed trees.
M FindById<TProps>(ITreeRedbObject<TProps>, long) Find node by ID in typed tree.
M FlattenWithLevels<TProps>(ITreeRedbObject<TProps>) Flattens typed tree to list with level indicators.
M GetLeaves<TProps>(ITreeRedbObject<TProps>) Gets all leaf nodes of typed tree.
M GetMaterializedPath<TProps>(ITreeRedbObject<TProps>, string) Builds materialized path for typed node.
M GetNodesAtLevel<TProps>(ITreeRedbObject<TProps>, int) Gets all nodes at specific level in typed tree.
M IsBalanced<TProps>(ITreeRedbObject<TProps>) Checks if typed tree is balanced (subtree depth difference does not exceed 1).
M PostOrderTraversal<TProps>(ITreeRedbObject<TProps>) Depth-First Search tree traversal - post-order for typed trees.
C TreeObjectConverter redb.Core.Utils
M BuildParentRelationships<TProps>(IEnumerable<TreeRedbObject<TProps>>) Build Parent relationships for a collection of tree objects.
M ToTreeObject<TProps>(RedbObject<TProps>) Convert RedbObject to TreeRedbObject preserving all properties.
C TreeProviderBase redb.Core.Providers.Base
M CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject, IRedbUser) Create child object with explicit user (uses config.DefaultCheckPermissionsOnSave).
M CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject) Create child object (uses _securityContext and config.DefaultCheckPermissionsOnSave).
C TreeRedbObject<TProps> redb.Core.Models.Entities
C TreeWindowedQueryable<TProps> redb.Core.Query.Window
M SelectAsync<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Execute window query with tree context and materialize results.