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: Object Clear search
C appExt redb.Core.Utils
M Filter<T>(IQueryable<T>, string, object) Filter IQueryable by property name dynamically.
C ArrayLeaf redb.Core.Query.Filtering
T ArrayLeaf(string, long, string, ArrayLeafOperator, object?, ListItemProperty?) Leaf node - a specific operation on an array field.
C BaseFilterExpressionParser redb.Core.Query.Parsing
M ParseRedbFilter(Expression<Func<IRedbObject, bool>>) Parse LINQ predicate for base RedbObject fields (id, name, parent_id, etc.).
C CacheStatistics redb.Core.Models.Permissions
C ChildObjectInfo redb.Core.Models
P ObjectId Object ID
C ChildObjectInfo redb.Core.Providers.Base
C ComparisonExpression redb.Core.Query.QueryExpressions
T ComparisonExpression(PropertyInfo, ComparisonOperator, object?) Comparison expression (property operator value)
C ConstantValueExpression redb.Core.Query.QueryExpressions
C E117_ListItemWithObject redb.Examples.Examples
C E186_ObjectReference redb.Examples.Examples
E EditorType redb.PropsEditor.Services
C EffectivePermissionResult redb.Core.Models.Permissions
P ObjectId Object ID
C ExportFooter redb.Export.Models
P TotalObjects Total number of object instance records exported.
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 Initialize(IRedbObjectCache) Initialize cache for this domain (called once at application startup per domain).
M Set<TProps>(RedbObject<TProps>) Save WHOLE RedbObject to cache.
I IBulkOperations redb.Core.Data
M BulkDeleteObjectsAsync(IEnumerable<long>) Bulk delete objects by IDs.
M BulkDeleteValuesByObjectIdsAsync(IEnumerable<long>) Bulk delete values by object IDs.
M BulkInsertObjectsAsync(IEnumerable<RedbObjectRow>) Bulk insert objects using COPY protocol.
I IFilterExpressionParser redb.Core.Query.QueryExpressions
M ParseRedbFilter(Expression<Func<IRedbObject, bool>>) Parse lambda expression for filtering by base IRedbObject fields
I IKeyGenerator redb.Core.Data
M NextObjectIdAsync() Generate next unique ID for objects.
M NextObjectIdBatchAsync(int) Generate batch of object IDs for bulk operations.
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.
C InExpression redb.Core.Query.QueryExpressions
T InExpression(PropertyInfo, IReadOnlyList<object>) Expression for checking inclusion in list
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 DeleteAsync(IEnumerable<IRedbObject>, IRedbUser) Bulk delete objects by interface with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteAsync(IEnumerable<IRedbObject>) Bulk delete objects by interface (uses _securityContext and config.DefaultCheckPermissionsOnDelete).
M DeleteAsync(IRedbObject, IRedbUser) Delete object with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteAsync(IRedbObject) Delete object (uses _securityContext and config.DefaultCheckPermissionsOnDelete).
M LoadAsync<TProps>(IRedbObject, int, bool?) Load object from EAV (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M LoadAsync<TProps>(IRedbObject, IRedbUser, int, bool?) Load object from EAV with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M LoadWithParentsAsync<TProps>(IRedbObject, int, bool?) Load object from EAV with parent chain to root (uses _securityContext).
M LoadWithParentsAsync<TProps>(IRedbObject, IRedbUser, int, bool?) Load object from EAV with parent chain to root with explicit user.
M SaveAsync(IEnumerable<IRedbObject>, IRedbUser) Bulk save of polymorphic objects with explicit user (uses config).
M SaveAsync(IEnumerable<IRedbObject>) Bulk save of polymorphic objects (uses _securityContext and config).
M SaveAsync(IRedbObject, IRedbUser) Save object to EAV with explicit user. Determines type internally.
M SaveAsync(IRedbObject) Save object to EAV (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).
M SoftDeleteAsync(IEnumerable<IRedbObject>, IRedbUser, long?) Mark objects for soft-deletion with explicit user.
M SoftDeleteAsync(IEnumerable<IRedbObject>, long?) Mark objects for soft-deletion (uses _securityContext).
M ThenByDescendingRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Additional descending sort by IRedbObject base fields.
M ThenByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Additional ascending sort by IRedbObject base fields.
I IOrderingExpressionParser redb.Core.Query.QueryExpressions
M ParseRedbOrdering<TKey>(Expression<Func<IRedbObject, TKey>>, SortDirection) 🆕 Parse sorting expression by base IRedbObject fields (id, name, date_create, etc.)
I IPermissionProvider redb.Core.Providers
M CanUserDeleteObject(IRedbObject, IRedbUser) Check if user can delete object.
M CanUserDeleteObject(IRedbObject) Check if current user can delete object.
M CanUserDeleteObject(RedbObject, IRedbUser) Check if user can delete object.
M CanUserDeleteObject(RedbObject) Check if current user can delete object.
M CanUserEditObject(IRedbObject, IRedbUser) Check if user can edit object.
M CanUserEditObject(IRedbObject) Check if current user can edit object.
M CanUserEditObject(RedbObject, IRedbUser) Check if user can edit object.
M CanUserEditObject(RedbObject) Check if current user can edit object.
M CanUserInsertScheme(RedbObject, IRedbUser) Check if user can create objects in object's scheme.
M CanUserSelectObject(IRedbObject, IRedbUser) Check if user can read object.
M CanUserSelectObject(IRedbObject) Check if current user can read object.
M CanUserSelectObject(RedbObject, IRedbUser) Check if user can read object.
M CanUserSelectObject(RedbObject) Check if current user can read object.
M GetEffectivePermissionsAsync(IRedbUser, IRedbObject) Get effective user permissions for object (including inheritance and roles).
M GetEffectivePermissionsBatchAsync(IRedbUser, IRedbObject[]) Get effective user permissions for multiple objects (batch).
M GetPermissionsByObjectAsync(IRedbObject) Get permissions for object.
M GetReadableObjectIds() Get IDs of objects readable by current user.
M GetReadableObjectIds(IRedbUser) Get IDs of objects readable by user.
I IPropsMaterializer redb.Core.Materialization
I IQueryableProvider redb.Core.Providers
M TreeQuery<TProps>(IEnumerable<IRedbObject>, int?) Create tree query limited to subtrees of object list (synchronous).
M TreeQuery<TProps>(IEnumerable<IRedbObject>, IRedbUser, int?) Create tree query limited to subtrees of object list with specified user (synchronous).
M TreeQuery<TProps>(IRedbObject?, int?) Create tree query limited to subtree (synchronous).
M TreeQuery<TProps>(IRedbObject?, IRedbUser, int?) Create tree query limited to subtree with specified user (synchronous).
I IRedbConnection redb.Core.Data
M ExecuteAsync(string, params object[]) Execute SQL command (INSERT, UPDATE, DELETE) and return affected rows count.
M ExecuteJsonAsync(string, params object[]) Execute raw SQL function returning JSON.
M ExecuteJsonListAsync(string, params object[]) Execute raw SQL function returning multiple JSON rows.
M ExecuteScalarAsync<T>(string, params object[]) Execute SQL query and return scalar value.
M QueryAsync<T>(string, params object[]) Execute SQL query and return list of mapped objects.
M QueryFirstOrDefaultAsync<T>(string, params object[]) Execute SQL query and return first result or null.
M QueryScalarListAsync<T>(string, params object[]) Execute SQL query and return list of scalar values (first column only).
I IRedbContext redb.Core.Data
M ExecuteAsync(string, params object[]) Execute SQL command (INSERT, UPDATE, DELETE).
M ExecuteJsonAsync(string, params object[]) Execute SQL returning JSON.
M ExecuteJsonListAsync(string, params object[]) Execute SQL returning multiple JSON rows.
M ExecuteScalarAsync<T>(string, params object[]) Execute SQL query and return scalar value.
M NextObjectIdAsync() Get next object ID.
M NextObjectIdBatchAsync(int) Get batch of object IDs.
M QueryAsync<T>(string, params object[]) Execute SQL query and return list of mapped objects.
M QueryFirstOrDefaultAsync<T>(string, params object[]) Execute SQL query and return first result or null.
M QueryScalarListAsync<T>(string, params object[]) Execute SQL query and return list of scalar values (first column only).
I IRedbList redb.Core.Models.Contracts
M AddItem(string, IRedbObject, string?) Add item to list with linked object (Aggregate Root pattern)
M CreateItem(string, IRedbObject, string?) Create item for list with linked object
I IRedbListItem redb.Core.Models.Contracts
P IdObject Object identifier (if list item references an object)
P Object Fully lazy loading of linked object
I IRedbObject redb.Core.Models.Contracts
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 IRedbObjectSerializer redb.Core.Serialization
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 AggregateRedbAsync<TResult>(Expression<Func<IRedbObject, TResult>>) Flexible aggregation for IRedbObject base fields ONLY.
M AverageRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Average of IRedbObject base field values.
M DistinctByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) DISTINCT ON (base_field) - one object per unique IRedbObject base field value.
M GroupByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Group by IRedbObject base fields (id, scheme_id, parent_id, etc.).
M MaxRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Maximum IRedbObject base field value (ValueLong, Key, DateCreate, etc.).
M MinRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Minimum IRedbObject base field value (ValueLong, Key, DateCreate, etc.).
M OrderByDescendingRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort descending by IRedbObject base fields.
M OrderByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort ascending by IRedbObject base fields (id, name, date_create, etc.).
M Select<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Project fields - return only selected properties.
M SumRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Sum of IRedbObject base field values (ValueLong, Key, etc.).
M WhereChildrenOf(IRedbObject) Direct children of specified object.
M WhereDescendantsOf(IRedbObject, int?) All descendants of specified object (recursive).
M WhereInRedb<TValue>(Expression<Func<IRedbObject, TValue>>, IEnumerable<TValue>) Filter by IRedbObject base field in list (WHERE _field IN (...)).
M WhereRedb(Expression<Func<IRedbObject, bool>>) Filter by base object fields (Id, Name, ParentId, etc.).
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 ISchemeSyncProvider redb.Core.Providers
M EnsureObjectSchemeAsync(string) Get or create scheme for Object type (without Props).
M GetObjectSchemeAsync(string) Get scheme for Object type by name.
I ISqlDialect redb.Core.Query
M LazyLoader_GetObjectJson() Get object as JSON via get_object_json. Params: $1=objectId, $2=maxDepth
M LazyLoader_GetObjectJsonBatch() Get multiple objects as JSON via get_object_json batch. Params: $1=objectIds array
M LazyLoader_SelectObjectBase() Get object base fields (without Props). Params: $1=objectId
M LazyLoader_SelectObjectHash() Get object hash for cache validation. Params: $1=objectId
M ListItems_SelectByObjectId() SELECT list items by object reference. Params: $1=objectId
M ListItems_UpdateAliasAndObject() UPDATE list item alias and idObject. Params: $1=alias, $2=idObject, $3=id
M ObjectStorage_CheckObjectExists() Check if object exists by ID. Params: $1=objectId
M ObjectStorage_DeleteById() DELETE object by ID. Params: $1=objectId
M ObjectStorage_DeleteByIds() DELETE objects by IDs (bulk). Params: $1=objectIds (array)
M ObjectStorage_DeleteValuesByObjectId() DELETE all values for object. Params: $1=objectId
M ObjectStorage_GetObjectJson() SELECT object as JSON. Params: $1=objectId, $2=depth
M ObjectStorage_GetObjectsJsonBulk() SELECT objects as JSON (bulk). Params: $1=objectIds (array), $2=depth
M ObjectStorage_InsertObject() INSERT new object with all fields.
M ObjectStorage_LockObjectsForUpdate() Lock objects for update (row locking). Params: $1=objectIds (array)
M ObjectStorage_SelectAllTypes() SELECT all types (for cache preload). No params.
M ObjectStorage_SelectExistingIds() SELECT existing object IDs from array. Params: $1=objectIds (array)
M ObjectStorage_SelectIdHash() SELECT only Id and Hash for object. Params: $1=objectId
M ObjectStorage_SelectIdHashScheme() SELECT Id, Hash, IdScheme for cache check. Params: $1=objectId
M ObjectStorage_SelectObjectById() SELECT all base fields for object by ID. Params: $1=objectId
M ObjectStorage_SelectObjectsByIds() SELECT all base fields for objects by IDs. Params: $1=objectIds (array)
M ObjectStorage_SelectSchemeById() SELECT scheme by ID. Params: $1=schemeId
M ObjectStorage_SelectSchemeIdByObjectId() SELECT scheme ID for object. Params: $1=objectId
M ObjectStorage_SelectSchemeIdsForObjects() SELECT scheme IDs for objects. Params: $1=objectIds (array)
M ObjectStorage_SelectSchemesByIds() SELECT schemes by IDs. Params: $1=schemeIds (array)
M ObjectStorage_SelectStructuresWithMetadata() SELECT structure metadata by scheme ID. Params: $1=schemeId
M ObjectStorage_SelectStructureTypes() SELECT structure types by IDs. Params: $1=structureIds (array)
M ObjectStorage_SelectTypeById() SELECT type info by ID. Params: $1=typeId
M ObjectStorage_SelectValueById() SELECT single value by ID. Params: $1=valueId
M ObjectStorage_SelectValuesForObjects() SELECT all values for object IDs (ChangeTracking). Params: $1=objectIds (array)
M ObjectStorage_SelectValuesWithTypes() SELECT existing values with types. Params: $1=objectId, $2=structureIds (array)
M ObjectStorage_UpdateObject() UPDATE object with all fields.
M Permissions_DeleteByUserRoleObject() DELETE permission by user/role/object. Params: $1=userId, $2=roleId, $3=objectId
M Permissions_GetEffectiveForObject() Get user permissions for object via SQL function or query.
M Permissions_SelectByObject() SELECT permissions by object. Params: $1=objectId
M Permissions_SelectByUserRoleObject() SELECT permission by user/role/object. Params: $1=userId, $2=roleId, $3=objectId
M Permissions_SelectReadableObjectIds() SELECT readable object IDs for user. Params: $1=userId
M Query_LoadObjectsByIdsSql(string, int) SQL for loading objects by IDs as JSON.
M Query_SearchObjectsBaseFunction() Name of the search function for objects base fields only (lazy loading).
M Query_SearchObjectsFunction() Name of the search function for objects with facets (eager loading).
M Query_SearchObjectsProjectionByIdsFunction() Name of the search function with projection by IDs.
M Query_SearchObjectsProjectionByPathsFunction() Name of the search function with projection by paths.
M Query_SearchObjectsSimpleSql() SQL for simple search objects (used in distinct).
M Query_SearchTreeObjectsBaseFunction() Name of the tree search function base fields only (lazy loading).
M Query_SearchTreeObjectsFunction() Name of the tree search function (eager loading).
M Schemes_InsertObject() INSERT Object scheme. Params: $1=id, $2=name, $3=type
M Schemes_SelectObjectByName() SELECT Object scheme by name and type. Params: $1=name, $2=type
M Tree_DeleteObjectsByIds() DELETE objects by IDs. Params: $1=objectIds (array)
M Tree_DeleteValuesByObjectIds() DELETE values by object IDs. Params: $1=objectIds (array)
M Tree_GetObjectJson() Get object as JSON. Params: $1=objectId, $2=depth
M Tree_ObjectExists() Check if object exists. Params: $1=objectId
I ISqlDialectPro redb.Core.Pro.Query
M Materialization_SelectObjectById() Select object by ID with all base fields.
M Materialization_SelectObjectsByIds() Bulk select objects by IDs (for nested objects).
M Materialization_SelectValuesByObjectAndStructureIds() Bulk select values by object IDs and structure IDs.
M Materialization_SelectValuesByObjectIds() Bulk select values by object IDs.
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).
M DeleteSubtreeAsync(IRedbObject, IRedbUser) Delete object subtree recursively with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteSubtreeAsync(IRedbObject) Delete object subtree recursively (uses _securityContext and config.DefaultCheckPermissionsOnDelete)...
M GetChildrenAsync<TProps>(IRedbObject, IRedbUser) Get direct children of object with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetChildrenAsync<TProps>(IRedbObject) Get direct children of object (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetDescendantsAsync<TProps>(IRedbObject, int?) Get all object descendants (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetDescendantsAsync<TProps>(IRedbObject, IRedbUser, int?) Get all object descendants with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetPathToRootAsync<TProps>(IRedbObject, IRedbUser) Get path from object to root with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetPathToRootAsync<TProps>(IRedbObject) Get path from object to root (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetPolymorphicChildrenAsync(IRedbObject, IRedbUser) Get all direct children of object regardless of their schemes with explicit user.
M GetPolymorphicChildrenAsync(IRedbObject) Get all direct children of object regardless of their schemes.
M GetPolymorphicDescendantsAsync(IRedbObject, int?) Get all polymorphic descendants of object regardless of their schemes.
M GetPolymorphicDescendantsAsync(IRedbObject, IRedbUser, int?) Get all polymorphic descendants of object with explicit user.
M GetPolymorphicPathToRootAsync(IRedbObject, IRedbUser) Get polymorphic path from object to root with explicit user.
M GetPolymorphicPathToRootAsync(IRedbObject) Get polymorphic path from object to root - objects can be of different schemes.
M LoadPolymorphicTreeAsync(IRedbObject, int?) Load polymorphic tree/subtree - supports objects of different schemes in one tree.
M LoadPolymorphicTreeAsync(IRedbObject, IRedbUser, int?) Load polymorphic tree/subtree with explicit user.
M LoadTreeAsync<TProps>(IRedbObject, int?) Load tree/subtree (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M LoadTreeAsync<TProps>(IRedbObject, IRedbUser, int?) Load tree/subtree with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M MoveObjectAsync(IRedbObject, IRedbObject?, IRedbUser) Move object in tree with explicit user (uses config.DefaultCheckPermissionsOnSave).
M MoveObjectAsync(IRedbObject, IRedbObject?) Move object in tree (uses _securityContext and config.DefaultCheckPermissionsOnSave).
I ITreeQueryProvider redb.Core.Query
M LoadObjectsByIdsAsync(List<long>, int?) Load full untyped objects by ID list via v_objects_json.
M LoadObjectsByIdsAsync<TProps>(List<long>, int?) Load full typed objects by ID list via v_objects_json.
I ITreeRedbObject redb.Core.Models.Contracts
M IsAncestorOf(ITreeRedbObject) Checks if current node is ancestor of specified node
M IsDescendantOf(ITreeRedbObject) Checks if current node is descendant of specified node
I ITreeRedbObject<TProps> redb.Core.Models.Contracts
I IWindowSpec<TProps> redb.Core.Query.Window
M OrderByDescRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort within window by IRedbObject base field (descending).
M OrderByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort within window by IRedbObject base field (ascending).
M PartitionByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Partition by IRedbObject base field (SchemeId, OwnerId, etc.).
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.
M LoadPropsForManyPolymorphicAsync(List<IRedbObject>) BULK loading for polymorphic objects (different schemes).
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.
M LoadPropsForManyPolymorphicAsync(List<IRedbObject>) BULK loading for polymorphic objects (different schemes).
C ListItemRecord redb.Export.Models
P IdObject Optional object reference.
C MigrationExpressionCompiler redb.Core.Pro.Migration
M CompileDefaultValueAsync(long, string, object?) Compile DefaultValue to UPDATE SQL
E MissingObjectStrategy redb.Core.Models.Configuration
C MsSqlDialect redb.MSSql.Sql
M LazyLoader_GetObjectJson() Get object as JSON via get_object_json. Params: $1=objectId, $2=maxDepth
M LazyLoader_GetObjectJsonBatch() Batch load Props JSON for multiple objects. Uses function call directly in SELECT.
M LazyLoader_SelectObjectBase() Get object base fields (without Props). Params: $1=objectId
M LazyLoader_SelectObjectHash() Get object hash for cache validation. Params: $1=objectId
M ListItems_SelectByObjectId() SELECT list items by object reference. Params: $1=objectId
M ListItems_UpdateAliasAndObject() UPDATE list item alias and idObject. Params: $1=alias, $2=idObject, $3=id
M ObjectStorage_CheckObjectExists() Check if object exists by ID. Params: $1=objectId
M ObjectStorage_DeleteById() DELETE object by ID. Params: $1=objectId
M ObjectStorage_DeleteByIds() DELETE objects by IDs (bulk). Params: $1=objectIds (array)
M ObjectStorage_DeleteValuesByObjectId() DELETE all values for object. Params: $1=objectId
M ObjectStorage_GetObjectJson() SELECT object as JSON. Params: $1=objectId, $2=depth
M ObjectStorage_GetObjectsJsonBulk() Bulk get object JSON. Uses function call directly in SELECT.
M ObjectStorage_InsertObject() INSERT new object with all fields.
M ObjectStorage_LockObjectsForUpdate() Lock objects for update (row locking). Params: $1=objectIds (array)
M ObjectStorage_SelectAllTypes() SELECT all types (for cache preload). No params.
M ObjectStorage_SelectExistingIds() SELECT existing object IDs from array. Params: $1=objectIds (array)
M ObjectStorage_SelectIdHash() SELECT only Id and Hash for object. Params: $1=objectId
M ObjectStorage_SelectIdHashScheme() SELECT Id, Hash, IdScheme for cache check. Params: $1=objectId
M ObjectStorage_SelectObjectById() SELECT all base fields for object by ID. Params: $1=objectId
M ObjectStorage_SelectObjectsByIds() SELECT all base fields for objects by IDs. Params: $1=objectIds (array)
M ObjectStorage_SelectSchemeById() SELECT scheme by ID. Params: $1=schemeId
M ObjectStorage_SelectSchemeIdByObjectId() SELECT scheme ID for object. Params: $1=objectId
M ObjectStorage_SelectSchemeIdsForObjects() SELECT scheme IDs for objects. Params: $1=objectIds (array)
M ObjectStorage_SelectSchemesByIds() SELECT schemes by IDs. Params: $1=schemeIds (array)
M ObjectStorage_SelectStructuresWithMetadata() SELECT structure metadata by scheme ID. Params: $1=schemeId
M ObjectStorage_SelectStructureTypes() SELECT structure types by IDs. Params: $1=structureIds (array)
M ObjectStorage_SelectTypeById() SELECT type info by ID. Params: $1=typeId
M ObjectStorage_SelectValueById() SELECT single value by ID. Params: $1=valueId
M ObjectStorage_SelectValuesForObjects() SELECT all values for object IDs (ChangeTracking). Params: $1=objectIds (array)
M ObjectStorage_SelectValuesWithTypes() SELECT existing values with types. Params: $1=objectId, $2=structureIds (array)
M ObjectStorage_UpdateObject() UPDATE object with all fields.
M Permissions_DeleteByUserRoleObject() DELETE permission by user/role/object. Params: $1=userId, $2=roleId, $3=objectId
M Permissions_GetEffectiveForObject() Uses MSSQL function get_user_permissions_for_object() from redb_permissions.sql.
M Permissions_SelectByObject() SELECT permissions by object. Params: $1=objectId
M Permissions_SelectByUserRoleObject() MSSQL equivalent of IS NOT DISTINCT FROM.
M Permissions_SelectReadableObjectIds() SELECT readable object IDs for user. Params: $1=userId
M Query_LoadObjectsByIdsSql(string, int) MSSQL: Load objects by IDs as JSON using get_object_json function.
M Query_SearchObjectsBaseFunction() Name of the search function for objects base fields only (lazy loading).
M Query_SearchObjectsFunction() Name of the search function for objects with facets (eager loading).
M Query_SearchObjectsProjectionByIdsFunction() Name of the search function with projection by IDs.
M Query_SearchObjectsProjectionByPathsFunction() Name of the search function with projection by paths.
M Query_SearchObjectsSimpleSql() Simple search for Delete operations - uses search_objects_with_facets with minimal params.
M Query_SearchTreeObjectsBaseFunction() Name of the tree search function base fields only (lazy loading).
M Query_SearchTreeObjectsFunction() Name of the tree search function (eager loading).
M Schemes_InsertObject() INSERT Object scheme. Params: $1=id, $2=name, $3=type
M Schemes_SelectObjectByName() SELECT Object scheme by name and type. Params: $1=name, $2=type
M Tree_DeleteObjectsByIds() DELETE objects by IDs. Params: $1=objectIds (array)
M Tree_DeleteValuesByObjectIds() DELETE values by object IDs. Params: $1=objectIds (array)
M Tree_GetObjectJson() Get object as JSON. Params: $1=objectId, $2=depth
M Tree_ObjectExists() Check if object exists. Params: $1=objectId
C NpgsqlBulkOperations redb.Postgres.Data
M BulkDeleteObjectsAsync(IEnumerable<long>) Bulk delete objects by IDs.
M BulkDeleteValuesByObjectIdsAsync(IEnumerable<long>) Bulk delete values by object IDs.
M BulkInsertObjectsAsync(IEnumerable<RedbObjectRow>) Bulk insert objects using COPY protocol.
M BulkUpdateObjectsAsync(IEnumerable<RedbObjectRow>) Bulk update objects using UPDATE FROM VALUES.
C NpgsqlRedbConnection redb.Postgres.Data
M ExecuteAsync(string, params object[]) Execute SQL command (INSERT, UPDATE, DELETE).
M ExecuteJsonAsync(string, params object[]) Execute SQL returning JSON (for PostgreSQL functions).
M ExecuteJsonListAsync(string, params object[]) Execute SQL returning multiple JSON rows.
M ExecuteScalarAsync<T>(string, params object[]) Execute SQL query and return scalar value.
M QueryAsync<T>(string, params object[]) Execute SQL query and map results to list of objects.
M QueryFirstOrDefaultAsync<T>(string, params object[]) Execute SQL query and return first result.
M QueryScalarListAsync<T>(string, params object[]) Execute SQL query and return list of scalar values (first column only).
E ObjectIdResetStrategy redb.Core.Models.Configuration
C ObjectRecord redb.Export.Models
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 AssignMissingIds(List<IRedbObject>, IRedbUser) 🎯 STEP 3: Assigning ID via GetNextKey() to all objects without ID
M CacheNestedObjects(object) Recursively caches all nested RedbObject found in Props
M CollectAllObjectsRecursively(IRedbObject, List<IRedbObject>, HashSet<long>) 🔍 STEP 2: Recursive collection of all IRedbObject (main + nested)
M ConvertToObjectRecord(IRedbObject) Convert IRedbObject to RedbObjectRow for bulk operations
M DeleteAsync(IEnumerable<IRedbObject>, IRedbUser) Bulk deletion of objects by interface with explicit user
M DeleteAsync(IEnumerable<IRedbObject>) Bulk deletion of objects by interface (uses _securityContext)
M DeleteAsync(IRedbObject, IRedbUser) Deletes an object from the database using atomic ExecuteDeleteAsync.
M DeleteAsync(IRedbObject) Delete object (uses _securityContext and config.DefaultCheckPermissionsOnDelete).
M EnsureSchemesForAllTypes(List<IRedbObject>) 🏗️ STEP 4: Creating/verifying schemas for all object types (using PostgresSchemeSyncProvider)
M ExecuteBatchByStrategy(EavSaveStrategy, List<IRedbObject>, List<RedbValue>) Executes batch save by strategy. OpenSource: only DeleteInsert.
M GetSchemeIdForObject(long) Get scheme ID for object
M LoadAsync<TProps>(IRedbObject, int, bool?) Load object from EAV (uses _securityContext and config.DefaultCheckPermissionsOnLoad)
M LoadAsync<TProps>(IRedbObject, IRedbUser, int, bool?) Load object from EAV with explicitly specified user (uses config.DefaultCheckPermissionsOnLoad)
M LoadObjectsEagerAsync(List<long>, int) EAGER loading: get_object_json for all IDs
M LoadObjectsLazyAsync(List<long>) LAZY loading: base fields from _objects + LoadPropsForManyAsync
M LoadWithParentsAsync<TProps>(IRedbObject, int, bool?) Load object with parent chain to root (uses _securityContext).
M LoadWithParentsAsync<TProps>(IRedbObject, IRedbUser, int, bool?) Load object by ID with parent chain to root with explicit user.
M PrepareValuesByStrategy(List<IRedbObject>, List<RedbValue>, bool) Step 6: Strategy selection for values processing.
M PrepareValuesWithTreeDeleteInsert(List<IRedbObject>, List<RedbValue>) DeleteInsert strategy: delete all existing values, then insert new ones.
M ProcessAllObjectsPropertiesRecursively(List<IRedbObject>, List<RedbValue>) 🔄 STEP 5: Recursive processing of Props of all objects → RedbValue lists
M SaveAsync(IEnumerable<IRedbObject>, IRedbUser) 🚀 BATCH SAVE with explicit user
M SaveAsync(IEnumerable<IRedbObject>) 🚀 BATCH SAVE: Save multiple objects (new + updates)
M SaveAsync(IRedbObject, IRedbUser) Save single object via interface with explicit user.
M SaveAsync(IRedbObject) Save single object via interface. Type determined internally.
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
M SaveBatchWithDeleteInsertStrategy(List<IRedbObject>, List<RedbValue>) DeleteInsert batch strategy: delete ALL values, BulkInsert/BulkUpdate of objects, BulkInsert of valu...
M SoftDeleteAsync(IEnumerable<IRedbObject>, IRedbUser, long?) Mark objects for soft-deletion with explicit user.
M SoftDeleteAsync(IEnumerable<IRedbObject>, long?) Mark objects for soft-deletion (uses _securityContext).
C ObjectStorageProviderBase.StructureFullInfo redb.Core.Providers.Base.ObjectStorageProviderBase
C ObjectStorageProviderExtensions redb.Core.Providers.Base
C OrderingExpressionParser redb.Core.Query
M ParseRedbOrdering<TKey>(Expression<Func<IRedbObject, TKey>>, SortDirection) Parse sorting by base IRedbObject fields (id, name, date_create, etc.)
C PermissionProviderBase redb.Core.Providers.Base
M CanUserDeleteObject(IRedbObject, IRedbUser) Check if user can delete object.
M CanUserDeleteObject(IRedbObject) Check if current user can delete object.
M CanUserDeleteObject(RedbObject, IRedbUser) Check if user can delete object.
M CanUserDeleteObject(RedbObject) Check if current user can delete object.
M CanUserEditObject(IRedbObject, IRedbUser) Check if user can edit object.
M CanUserEditObject(IRedbObject) Check if current user can edit object.
M CanUserEditObject(RedbObject, IRedbUser) Check if user can edit object.
M CanUserEditObject(RedbObject) Check if current user can edit object.
M CanUserInsertScheme(RedbObject, IRedbUser) Check if user can create objects in object's scheme.
M CanUserSelectObject(IRedbObject, IRedbUser) Check if user can read object.
M CanUserSelectObject(IRedbObject) Check if current user can read object.
M CanUserSelectObject(RedbObject, IRedbUser) Check if user can read object.
M CanUserSelectObject(RedbObject) Check if current user can read object.
M GetEffectivePermissionsAsync(IRedbUser, IRedbObject) Get effective user permissions for object (including inheritance and roles).
M GetEffectivePermissionsBatchAsync(IRedbUser, IRedbObject[]) Get effective user permissions for multiple objects (batch).
M GetPermissionsByObjectAsync(IRedbObject) Get permissions for object.
M GetReadableObjectIds() Get IDs of objects readable by current user.
M GetReadableObjectIds(IRedbUser) Get IDs of objects readable by user.
M GetReadableObjectIdsAsync(long) Async version of GetReadableObjectIds.
C PermissionRequest redb.Core.Models.Permissions
P ObjectId Object ID (0 for global permissions)
C PolymorphicRedbObjectConverter redb.Core.Serialization
C PostgreSqlDialect redb.Postgres.Sql
M LazyLoader_GetObjectJson() Get object as JSON via get_object_json. Params: $1=objectId, $2=maxDepth
M LazyLoader_GetObjectJsonBatch() Get multiple objects as JSON via get_object_json batch. Params: $1=objectIds array
M LazyLoader_SelectObjectBase() Get object base fields (without Props). Params: $1=objectId
M LazyLoader_SelectObjectHash() Get object hash for cache validation. Params: $1=objectId
M ListItems_SelectByObjectId() SELECT list items by object reference. Params: $1=objectId
M ListItems_UpdateAliasAndObject() UPDATE list item alias and idObject. Params: $1=alias, $2=idObject, $3=id
M ObjectStorage_CheckObjectExists() Check if object exists by ID. Params: $1=objectId
M ObjectStorage_DeleteById() DELETE object by ID. Params: $1=objectId
M ObjectStorage_DeleteByIds() DELETE objects by IDs (bulk). Params: $1=objectIds (array)
M ObjectStorage_DeleteValuesByObjectId() DELETE all values for object. Params: $1=objectId
M ObjectStorage_GetObjectJson() SELECT object as JSON. Params: $1=objectId, $2=depth
M ObjectStorage_GetObjectsJsonBulk() SELECT objects as JSON (bulk). Params: $1=objectIds (array), $2=depth
M ObjectStorage_InsertObject() INSERT new object with all fields.
M ObjectStorage_LockObjectsForUpdate() Lock objects for update (row locking). Params: $1=objectIds (array)
M ObjectStorage_SelectAllTypes() SELECT all types (for cache preload). No params.
M ObjectStorage_SelectExistingIds() SELECT existing object IDs from array. Params: $1=objectIds (array)
M ObjectStorage_SelectIdHash() SELECT only Id and Hash for object. Params: $1=objectId
M ObjectStorage_SelectIdHashScheme() SELECT Id, Hash, IdScheme for cache check. Params: $1=objectId
M ObjectStorage_SelectObjectById() SELECT all base fields for object by ID. Params: $1=objectId
M ObjectStorage_SelectObjectsByIds() SELECT all base fields for objects by IDs. Params: $1=objectIds (array)
M ObjectStorage_SelectSchemeById() SELECT scheme by ID. Params: $1=schemeId
M ObjectStorage_SelectSchemeIdByObjectId() SELECT scheme ID for object. Params: $1=objectId
M ObjectStorage_SelectSchemeIdsForObjects() SELECT scheme IDs for objects. Params: $1=objectIds (array)
M ObjectStorage_SelectSchemesByIds() SELECT schemes by IDs. Params: $1=schemeIds (array)
M ObjectStorage_SelectStructuresWithMetadata() SELECT structure metadata by scheme ID. Params: $1=schemeId
M ObjectStorage_SelectStructureTypes() SELECT structure types by IDs. Params: $1=structureIds (array)
M ObjectStorage_SelectTypeById() SELECT type info by ID. Params: $1=typeId
M ObjectStorage_SelectValueById() SELECT single value by ID. Params: $1=valueId
M ObjectStorage_SelectValuesForObjects() SELECT all values for object IDs (ChangeTracking). Params: $1=objectIds (array)
M ObjectStorage_SelectValuesWithTypes() SELECT existing values with types. Params: $1=objectId, $2=structureIds (array)
M ObjectStorage_UpdateObject() UPDATE object with all fields.
M Permissions_DeleteByUserRoleObject() DELETE permission by user/role/object. Params: $1=userId, $2=roleId, $3=objectId
M Permissions_GetEffectiveForObject() CRITICAL: Uses PostgreSQL function get_user_permissions_for_object()!
M Permissions_SelectByObject() SELECT permissions by object. Params: $1=objectId
M Permissions_SelectByUserRoleObject() SELECT permission by user/role/object. Params: $1=userId, $2=roleId, $3=objectId
M Permissions_SelectReadableObjectIds() SELECT readable object IDs for user. Params: $1=userId
M Query_LoadObjectsByIdsSql(string, int) PostgreSQL: Load objects by IDs as JSON using get_object_json function.
M Query_SearchObjectsBaseFunction() Name of the search function for objects base fields only (lazy loading).
M Query_SearchObjectsFunction() Name of the search function for objects with facets (eager loading).
M Query_SearchObjectsProjectionByIdsFunction() Name of the search function with projection by IDs.
M Query_SearchObjectsProjectionByPathsFunction() Name of the search function with projection by paths.
M Query_SearchObjectsSimpleSql() Simple search for Delete operations - uses search_objects_with_facets with minimal params.
M Query_SearchTreeObjectsBaseFunction() Name of the tree search function base fields only (lazy loading).
M Query_SearchTreeObjectsFunction() Name of the tree search function (eager loading).
M Schemes_InsertObject() INSERT Object scheme. Params: $1=id, $2=name, $3=type
M Schemes_SelectObjectByName() SELECT Object scheme by name and type. Params: $1=name, $2=type
M Tree_DeleteObjectsByIds() DELETE objects by IDs. Params: $1=objectIds (array)
M Tree_DeleteValuesByObjectIds() DELETE values by object IDs. Params: $1=objectIds (array)
M Tree_GetObjectJson() Get object as JSON. Params: $1=objectId, $2=depth
M Tree_ObjectExists() Check if object exists. Params: $1=objectId
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
C ProMsSqlDialect redb.MSSql.Pro.Sql
M Materialization_SelectObjectById() Select object by ID with all base fields.
M Materialization_SelectObjectsByIds() Bulk select objects by IDs (for nested objects).
M Materialization_SelectValuesByObjectAndStructureIds() Bulk select values by object IDs and structure IDs.
M Materialization_SelectValuesByObjectIds() Bulk select values by object IDs.
C PropertyMetadata redb.PropsEditor.Services
M GetValue(object) Gets the value of this property from an object.
M SetValue(object, object?) Sets the value of this property on an object.
C ProPostgreSqlDialect redb.Postgres.Pro.Sql
M Materialization_SelectObjectById() Select object by ID with all base fields.
M Materialization_SelectObjectsByIds() Bulk select objects by IDs (for nested objects).
M Materialization_SelectValuesByObjectAndStructureIds() Bulk select values by object IDs and structure IDs.
M Materialization_SelectValuesByObjectIds() Bulk select values by object IDs.
C ProPropsMaterializer redb.Core.Pro.Materialization
M GetObjectProps<TProps>(long, List<RedbValue>, long, int, ConcurrentBag<long>) Analog of get_object_json - works with values from MEMORY!
C ProSqlBuilder redb.MSSql.Pro.Query
M FormatValueLegacy(object?) Formats value for SQL (legacy, without parameters).
C ProSqlBuilder redb.Postgres.Pro.Query
C ProSqlBuilderBase redb.Core.Pro.Query
M NormalizeDictionaryFieldName(string, object?) Normalizes Dictionary field names.
C QueryableProviderBase redb.Core.Providers.Base
M TreeQuery<TProps>(IEnumerable<IRedbObject>, int?) Create tree query limited to subtrees of object list (synchronous).
M TreeQuery<TProps>(IEnumerable<IRedbObject>, IRedbUser, int?) Create tree query limited to subtrees of object list with specified user (synchronous).
M TreeQuery<TProps>(IRedbObject?, int?) Create tree query limited to subtree (synchronous).
M TreeQuery<TProps>(IRedbObject?, IRedbUser, int?) Create tree query limited to subtree with specified user (synchronous).
C RedbContextBase redb.Core.Data
M ExecuteAsync(string, params object[]) Execute SQL command (INSERT, UPDATE, DELETE).
M ExecuteJsonAsync(string, params object[]) Execute SQL returning JSON.
M ExecuteJsonListAsync(string, params object[]) Execute SQL returning multiple JSON rows.
M ExecuteScalarAsync<T>(string, params object[]) Execute SQL query and return scalar value.
M NextObjectIdAsync() Get next object ID.
M NextObjectIdBatchAsync(int) Get batch of object IDs.
M QueryAsync<T>(string, params object[]) Execute SQL query and return list of mapped objects.
M QueryFirstOrDefaultAsync<T>(string, params object[]) Execute SQL query and return first result or null.
M QueryScalarListAsync<T>(string, params object[]) Execute SQL query and return list of scalar values (first column only).
C RedbHash redb.Core.Utils
M ComputeFor(IRedbObject) Compute hash for any IRedbObject - only from business data (Props).
M ComputeForBaseFields(IRedbObject) Compute hash from base value_* fields of IRedbObject (for Object schemes without Props).
C RedbKeyGeneratorBase redb.Core.Data
M NextObjectIdAsync() Get next object ID (uses shared static cache).
M NextObjectIdBatchAsync(int) Get batch of object IDs.
C RedbKeySerializer redb.Core.Utils
M DeserializeObject(string, Type) Deserialize _array_index text value to key (non-generic version)
M SerializeObject(object, Type) Serialize key to _array_index text value (non-generic version)
C RedbList redb.Core.Models.Entities
M AddItem(string, IRedbObject, string?) Add item with linked object (Aggregate Root pattern).
M CreateItem(string, IRedbObject, string?) Create item with linked object.
C RedbListItem redb.Core.Models.Entities
M ForList(IRedbList, string?, string?, IRedbObject) Create ListItem with linked object.
P IdObject Linked object identifier (optional).
P IsObjectLoaderAvailable Check if global loader is available.
P IsObjectReference Check if item is object reference.
P Object Linked object with lazy loading.
T RedbListItem(IRedbList, string?, string?, IRedbObject) Constructor for creating item with linked object.
M SetGlobalObjectLoader(Func<long, Task<IRedbObject?>>) Set global object loader for all ListItems.
C RedbObject redb.Core.Models.Entities
C RedbObject<TProps> redb.Core.Models.Entities
T RedbObject() Default constructor for deserialization.
T RedbObject(TProps) Constructor with properties.
C RedbObjectExtensions redb.Core.Extensions
M CreateHierarchicalPath(IEnumerable<IRedbObject>, string) Creates hierarchical path string for object
M GetAge(IRedbObject, DateTime?) Gets object age (time since creation)
M GetDebugInfo(IRedbObject) Gets brief object information for debugging
M GetDisplayName(IRedbObject, bool) Gets object display name with fallback logic
M GetTimeSinceLastModification(IRedbObject, DateTime?) Gets time since last object modification
M GetTreeLevelAsync<T>(IRedbObject, ITreeProvider) OPTIMIZED version: Gets object level in tree (root = 0)
M HasStarted(IRedbObject, DateTime?) Checks if object has started its validity
M IsActiveAt(IRedbObject, DateTime?) Checks if object is active by timestamps
M IsAncestorOfAsync<T>(IRedbObject, IRedbObject, ITreeProvider) Checks if object is an ancestor of the specified descendant
M IsDescendantOfAsync<T>(IRedbObject, IRedbObject, ITreeProvider) OPTIMIZED version: Checks if object is descendant of specified parent
M IsExpired(IRedbObject, DateTime?) Checks if object validity has expired
M IsLeafAsync<T>(IRedbObject, ITreeProvider) Checks if object is a tree leaf (without children)
C RedbObjectFactory redb.Core.Models
M CreateBatchChildAsync<TProps>(IRedbObject, IEnumerable<TProps>, bool) Batch creation of child objects with cache preloading
M CreateBatchChildAsync<TProps>(IRedbObject, IEnumerable<TProps>) Batch creation of child objects with cache preloading
M CreateChildAsync<TProps>(IRedbObject, TProps, bool) Create a new object as a child of an existing parent
M CreateChildAsync<TProps>(IRedbObject, TProps) Create a new object as a child of an existing parent
M CreateCopyAsync<TProps>(IRedbObject<TProps>, TProps) Create copy of existing object with new properties
M CreateObject(string?) Create non-generic RedbObject with basic metadata.
C RedbObjectRow redb.Core.Models.Entities
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 AggregateRedbAsync<TResult>(Expression<Func<IRedbObject, TResult>>) Flexible aggregation ONLY for base IRedbObject fields
M AverageRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Average value of base IRedbObject field
M DistinctByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) DISTINCT ON (base_field) - one object per unique IRedbObject base field value.
M ExtractFieldPathRedb<TField>(Expression<Func<IRedbObject, TField>>) Extracts base field path from IRedbObject expression
M GroupByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Grouping by base IRedbObject fields (id, scheme_id, parent_id, etc.)
M MaxRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Maximum value of base IRedbObject field (ValueLong, Key, DateCreate, etc.)
M MinRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Minimum value of base IRedbObject field (ValueLong, Key, DateCreate, etc.)
M OrderByDescendingRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort descending by IRedbObject base fields.
M OrderByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort ascending by IRedbObject base fields (id, name, date_create, etc.).
M Select<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Project fields - return only selected properties.
M SumRedbAsync<TField>(Expression<Func<IRedbObject, TField>>) Sum of base IRedbObject field values (ValueLong, Key, etc.)
M ThenByDescendingRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Additional descending sort by IRedbObject base fields.
M ThenByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Additional ascending sort by IRedbObject base fields.
M WhereChildrenOf(IRedbObject) Direct children of specified object.
M WhereDescendantsOf(IRedbObject, int?) All descendants of specified object (recursive).
M WhereInRedb<TValue>(Expression<Func<IRedbObject, TValue>>, IEnumerable<TValue>) Filter by IRedbObject base field in list (WHERE _field IN (...)).
M WhereRedb(Expression<Func<IRedbObject, bool>>) Filter by base object fields (Id, Name, ParentId, etc.).
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 CanUserDeleteObject(IRedbObject, IRedbUser) Check if user can delete object.
M CanUserDeleteObject(IRedbObject) Check if current user can delete object.
M CanUserDeleteObject(RedbObject, IRedbUser) Check if user can delete object.
M CanUserDeleteObject(RedbObject) Check if current user can delete object.
M CanUserEditObject(IRedbObject, IRedbUser) Check if user can edit object.
M CanUserEditObject(IRedbObject) Check if current user can edit object.
M CanUserEditObject(RedbObject, IRedbUser) Check if user can edit object.
M CanUserEditObject(RedbObject) Check if current user can edit object.
M CanUserInsertScheme(RedbObject, IRedbUser) Check if user can create objects in object's scheme.
M CanUserSelectObject(IRedbObject, IRedbUser) Check if user can read object.
M CanUserSelectObject(IRedbObject) Check if current user can read object.
M CanUserSelectObject(RedbObject, IRedbUser) Check if user can read object.
M CanUserSelectObject(RedbObject) Check if current user can read object.
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 DeleteAsync(IEnumerable<IRedbObject>, IRedbUser) Bulk delete objects by interface with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteAsync(IEnumerable<IRedbObject>) Bulk delete objects by interface (uses _securityContext and config.DefaultCheckPermissionsOnDelete).
M DeleteAsync(IRedbObject, IRedbUser) Delete object with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteAsync(IRedbObject) Delete object (uses _securityContext and config.DefaultCheckPermissionsOnDelete).
M DeleteSubtreeAsync(IRedbObject, IRedbUser) Delete object subtree recursively with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteSubtreeAsync(IRedbObject) Delete object subtree recursively (uses _securityContext and config.DefaultCheckPermissionsOnDelete)...
M EnsureObjectSchemeAsync(string) Get or create scheme for Object type (without Props).
M GetChildrenAsync<TProps>(IRedbObject, IRedbUser) Get direct children of object with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetChildrenAsync<TProps>(IRedbObject) Get direct children of object (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetDescendantsAsync<TProps>(IRedbObject, int?) Get all object descendants (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetDescendantsAsync<TProps>(IRedbObject, IRedbUser, int?) Get all object descendants with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetEffectivePermissionsAsync(IRedbUser, IRedbObject) Get effective user permissions for object (including inheritance and roles).
M GetEffectivePermissionsBatchAsync(IRedbUser, IRedbObject[]) Get effective user permissions for multiple objects (batch).
M GetObjectJsonSql() Get SQL for loading object as JSON. Override in derived classes for DB-specific syntax.
M GetObjectSchemeAsync(string) Get scheme for Object type by name.
M GetPathToRootAsync<TProps>(IRedbObject, IRedbUser) Get path from object to root with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetPathToRootAsync<TProps>(IRedbObject) Get path from object to root (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetPermissionsByObjectAsync(IRedbObject) Get permissions for object.
M GetPolymorphicChildrenAsync(IRedbObject, IRedbUser) Get all direct children of object regardless of their schemes with explicit user.
M GetPolymorphicChildrenAsync(IRedbObject) Get all direct children of object regardless of their schemes.
M GetPolymorphicDescendantsAsync(IRedbObject, int?) Get all polymorphic descendants of object regardless of their schemes.
M GetPolymorphicDescendantsAsync(IRedbObject, IRedbUser, int?) Get all polymorphic descendants of object with explicit user.
M GetPolymorphicPathToRootAsync(IRedbObject, IRedbUser) Get polymorphic path from object to root with explicit user.
M GetPolymorphicPathToRootAsync(IRedbObject) Get polymorphic path from object to root - objects can be of different schemes.
M GetReadableObjectIds() Get IDs of objects readable by current user.
M GetReadableObjectIds(IRedbUser) Get IDs of objects readable by user.
M LoadAsync<TProps>(IRedbObject, int, bool?) Load object from EAV (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M LoadAsync<TProps>(IRedbObject, IRedbUser, int, bool?) Load object from EAV with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M LoadPolymorphicTreeAsync(IRedbObject, int?) Load polymorphic tree/subtree - supports objects of different schemes in one tree.
M LoadPolymorphicTreeAsync(IRedbObject, IRedbUser, int?) Load polymorphic tree/subtree with explicit user.
M LoadTreeAsync<TProps>(IRedbObject, int?) Load tree/subtree (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M LoadTreeAsync<TProps>(IRedbObject, IRedbUser, int?) Load tree/subtree with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M MoveObjectAsync(IRedbObject, IRedbObject?, IRedbUser) Move object in tree with explicit user (uses config.DefaultCheckPermissionsOnSave).
M MoveObjectAsync(IRedbObject, IRedbObject?) Move object in tree (uses _securityContext and config.DefaultCheckPermissionsOnSave).
M SaveAsync(IEnumerable<IRedbObject>, IRedbUser) Bulk save of polymorphic objects with explicit user (uses config).
M SaveAsync(IEnumerable<IRedbObject>) Bulk save of polymorphic objects (uses _securityContext and config).
M SaveAsync(IRedbObject, IRedbUser) Save object to EAV with explicit user. Determines type internally.
M SaveAsync(IRedbObject) Save object to EAV (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).
M SoftDeleteAsync(IEnumerable<IRedbObject>, IRedbUser, long?) Mark objects for soft-deletion with explicit user.
M SoftDeleteAsync(IEnumerable<IRedbObject>, long?) Mark objects for soft-deletion (uses _securityContext).
M TreeQuery<TProps>(IEnumerable<IRedbObject>, int?) Create tree query limited to subtrees of object list (synchronous).
M TreeQuery<TProps>(IEnumerable<IRedbObject>, IRedbUser, int?) Create tree query limited to subtrees of object list with specified user (synchronous).
M TreeQuery<TProps>(IRedbObject?, int?) Create tree query limited to subtree (synchronous).
M TreeQuery<TProps>(IRedbObject?, IRedbUser, int?) Create tree query limited to subtree with specified user (synchronous).
C RedbServiceConfiguration redb.Core.Models.Configuration
P MissingObjectStrategy Strategy for handling non-existent objects on UPDATE.
P ThrowOnObjectNotFound Throw exception if object not found in LoadAsync.
C RedbServiceConfigurationBuilder redb.Core.Models.Configuration
M WithIdResetStrategy(ObjectIdResetStrategy) Configure ID handling strategy after object deletion
M WithMissingObjectStrategy(MissingObjectStrategy) Configure strategy for handling non-existent objects on UPDATE
C RedbTypeIds redb.Core.Utils
T Object Object type - reference to another _objects record (redbObject)
C RedbTypeMapping redb.Core.Utils
M GetObjectValueColumn(long) Get _objects column name for RedbPrimitive value storage
C RedbValue redb.Core.Models.Entities
P IdObject Object identifier this value belongs to.
P Object Object reference ID.
C SchemeSyncProviderBase redb.Core.Providers.Base
M EnsureObjectSchemeAsync(string) Get or create scheme for Object type (without Props).
M GetObjectSchemeAsync(string) Get scheme for Object type by name.
C Sql redb.Core.Query
C SqlBulkOperations redb.MSSql.Data
M BulkDeleteObjectsAsync(IEnumerable<long>) Bulk delete objects by IDs.
M BulkDeleteValuesByObjectIdsAsync(IEnumerable<long>) Bulk delete values by object IDs.
M BulkInsertObjectsAsync(IEnumerable<RedbObjectRow>) Bulk insert objects using SqlBulkCopy.
M BulkUpdateObjectsAsync(IEnumerable<RedbObjectRow>) Bulk update objects using MERGE statement.
C SqlParameterCollector redb.Core.Pro.Query
M AddParameter(object?) Adds parameter and returns placeholder via dialect.
M AddParameterWithOffset(object?, int) Adds parameter with specified index offset.
C SqlParameterCollectorBase redb.Core.Query.Parameters
M AddParameter(object?) Adds a parameter and returns the dialect-specific placeholder.
M AddParameterWithOffset(object?, int) Adds a parameter with a custom index offset.
M FormatForComment(object?) Formats value for debug comment.
M NormalizeValue(object?) Normalizes value before adding to parameters.
C SqlRedbConnection redb.MSSql.Data
M ExecuteAsync(string, params object[]) Execute SQL command (INSERT, UPDATE, DELETE).
M ExecuteJsonAsync(string, params object[]) Execute SQL returning JSON (for MSSQL functions returning JSON).
M ExecuteJsonListAsync(string, params object[]) Execute SQL returning multiple JSON rows.
M ExecuteScalarAsync<T>(string, params object[]) Execute SQL query and return scalar value.
M QueryAsync<T>(string, params object[]) Execute SQL query and map results to list of objects.
M QueryFirstOrDefaultAsync<T>(string, params object[]) Execute SQL query and return first result.
M QueryScalarListAsync<T>(string, params object[]) Execute SQL query and return list of scalar values (first column only).
C TreeCollection redb.Core.Models.Collections
M Add(ITreeRedbObject) Adds node to collection and automatically builds hierarchy
M FindNodes(Func<ITreeRedbObject, bool>) Finds nodes by predicate
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(ITreeRedbObject) Breadth-First Search tree traversal for polymorphic trees.
M BreadthFirstTraversal<TProps>(ITreeRedbObject<TProps>) Breadth-First Search tree traversal for typed trees.
M DepthFirstTraversal(ITreeRedbObject) Depth-First Search tree traversal - pre-order for polymorphic trees.
M DepthFirstTraversal<TProps>(ITreeRedbObject<TProps>) Depth-First Search tree traversal - pre-order for typed trees.
M FindById(ITreeRedbObject, long) Find node by ID in polymorphic tree.
M FindById<TProps>(ITreeRedbObject<TProps>, long) Find node by ID in typed tree.
M FindNodes(ITreeRedbObject, Func<ITreeRedbObject, bool>) Find nodes by predicate in polymorphic tree.
M FlattenWithLevels(ITreeRedbObject) Flattens polymorphic tree to list with level indicators.
M FlattenWithLevels<TProps>(ITreeRedbObject<TProps>) Flattens typed tree to list with level indicators.
M GetLeaves(ITreeRedbObject) Gets all leaf nodes of polymorphic tree.
M GetLeaves<TProps>(ITreeRedbObject<TProps>) Gets all leaf nodes of typed tree.
M GetMaterializedPath(ITreeRedbObject, string) Builds materialized path for polymorphic node.
M GetMaterializedPath<TProps>(ITreeRedbObject<TProps>, string) Builds materialized path for typed node.
M GetNodesAtLevel(ITreeRedbObject, int) Gets all nodes at specific level in polymorphic tree.
M GetNodesAtLevel<TProps>(ITreeRedbObject<TProps>, int) Gets all nodes at specific level in typed tree.
M IsBalanced(ITreeRedbObject) Checks if polymorphic tree is balanced (subtree depth difference does not exceed 1).
M IsBalanced<TProps>(ITreeRedbObject<TProps>) Checks if typed tree is balanced (subtree depth difference does not exceed 1).
M PostOrderTraversal(ITreeRedbObject) Depth-First Search tree traversal - post-order for polymorphic trees.
M PostOrderTraversal<TProps>(ITreeRedbObject<TProps>) Depth-First Search tree traversal - post-order for typed trees.
C TreeObjectConverter redb.Core.Utils
M BuildParentRelationships(IEnumerable<ITreeRedbObject>) Build Parent relationships for a collection of polymorphic tree objects.
M BuildParentRelationships<TProps>(IEnumerable<TreeRedbObject<TProps>>) Build Parent relationships for a collection of tree objects.
M ToTreeObject<TProps>(IRedbObject) Convert IRedbObject to TreeRedbObject (creates new instance with Props = new TProps if types don't m...
M ToTreeObject<TProps>(RedbObject<TProps>) Convert RedbObject to TreeRedbObject preserving all properties.
M ToTreeObjectDynamic(IRedbObject) Convert IRedbObject to ITreeRedbObject dynamically preserving actual Props type.
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).
M DeleteSubtreeAsync(IRedbObject, IRedbUser) Delete object subtree recursively with explicit user (uses config.DefaultCheckPermissionsOnDelete).
M DeleteSubtreeAsync(IRedbObject) Delete object subtree recursively (uses _securityContext and config.DefaultCheckPermissionsOnDelete)...
M GetChildrenAsync<TProps>(IRedbObject, IRedbUser) Get direct children of object with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetChildrenAsync<TProps>(IRedbObject) Get direct children of object (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetDescendantsAsync<TProps>(IRedbObject, int?) Get all object descendants (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetDescendantsAsync<TProps>(IRedbObject, IRedbUser, int?) Get all object descendants with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetPathToRootAsync<TProps>(IRedbObject, IRedbUser) Get path from object to root with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M GetPathToRootAsync<TProps>(IRedbObject) Get path from object to root (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M GetPolymorphicChildrenAsync(IRedbObject, IRedbUser) Get all direct children of object regardless of their schemes with explicit user.
M GetPolymorphicChildrenAsync(IRedbObject) Get all direct children of object regardless of their schemes.
M GetPolymorphicDescendantsAsync(IRedbObject, int?) Get all polymorphic descendants of object regardless of their schemes.
M GetPolymorphicDescendantsAsync(IRedbObject, IRedbUser, int?) Get all polymorphic descendants of object with explicit user.
M GetPolymorphicPathToRootAsync(IRedbObject, IRedbUser) Get polymorphic path from object to root with explicit user.
M GetPolymorphicPathToRootAsync(IRedbObject) Get polymorphic path from object to root - objects can be of different schemes.
M LoadPolymorphicTreeAsync(IRedbObject, int?) Load polymorphic tree/subtree - supports objects of different schemes in one tree.
M LoadPolymorphicTreeAsync(IRedbObject, IRedbUser, int?) Load polymorphic tree/subtree with explicit user.
M LoadTreeAsync<TProps>(IRedbObject, int?) Load tree/subtree (uses _securityContext and config.DefaultCheckPermissionsOnLoad).
M LoadTreeAsync<TProps>(IRedbObject, IRedbUser, int?) Load tree/subtree with explicit user (uses config.DefaultCheckPermissionsOnLoad).
M MoveObjectAsync(IRedbObject, IRedbObject?, IRedbUser) Move object in tree with explicit user (uses config.DefaultCheckPermissionsOnSave).
M MoveObjectAsync(IRedbObject, IRedbObject?) Move object in tree (uses _securityContext and config.DefaultCheckPermissionsOnSave).
C TreeQueryableBase<TProps> redb.Core.Query.Base
M DistinctByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) DISTINCT ON (base_field) - one object per unique IRedbObject base field value.
M GroupByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Override GroupByRedb to respect tree context.
M OrderByDescendingRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort descending by IRedbObject base fields.
M OrderByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort ascending by IRedbObject base fields (id, name, date_create, etc.).
M ThenByDescendingRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Additional descending sort by IRedbObject base fields.
M ThenByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Additional ascending sort by IRedbObject base fields.
M WhereChildrenOf(IRedbObject) Direct children of specified object.
M WhereDescendantsOf(IRedbObject, int?) All descendants of specified object (recursive).
M WhereInRedb<TValue>(Expression<Func<IRedbObject, TValue>>, IEnumerable<TValue>) Filter by IRedbObject base field in list (WHERE _field IN (...)).
M WhereRedb(Expression<Func<IRedbObject, bool>>) Filter by base object fields (Id, Name, ParentId, etc.).
C TreeQueryContext<TProps> redb.Core.Query.Base
C TreeRedbObject redb.Core.Models.Entities
M IsAncestorOf(ITreeRedbObject) Checks if current node is ancestor of specified node
M IsDescendantOf(ITreeRedbObject) Checks if current node is descendant of specified node
C TreeRedbObject<TProps> redb.Core.Models.Entities
M IsAncestorOf(ITreeRedbObject) Checks if current node is ancestor of specified node
M IsDescendantOf(ITreeRedbObject) Checks if current node is descendant of specified node
C TreeWindowedQueryable<TProps> redb.Core.Query.Window
M SelectAsync<TResult>(Expression<Func<RedbObject<TProps>, TResult>>) Execute window query with tree context and materialize results.
C UserCacheStats redb.Core.Caching
P ObjectCount Number of user objects in cache.
C UserPermissionResult redb.Core.Models.Permissions
C UserPermissionSet redb.Core.Models.Permissions
M GetPermissionsForObject(long, long) Get permissions for object considering hierarchy
P ObjectPermissions Permissions on specific objects
C UserProviderBase redb.Core.Providers.Base
M BuildUserSearchSql(UserSearchCriteria?, out object[]) Build SQL for user search. Override in derived class for DB-specific syntax.
C ValueRecord redb.Export.Models
P IdObject Foreign key to _objects.
P Object Foreign key to another _objects row (object reference).
C VUserPermission redb.Core.Models.Permissions
C WindowSpec<TProps> redb.Core.Query.Window
M OrderByDescRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort within window by IRedbObject base field (descending).
M OrderByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Sort within window by IRedbObject base field (ascending).
M PartitionByRedb<TKey>(Expression<Func<IRedbObject, TKey>>) Partition by IRedbObject base field (SchemeId, OwnerId, etc.).