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