API Reference
Browse the REDB API documentation. Select a namespace or type from the tree on the left, or click on items below.
redb.CLI
Classes
| Program | REDB CLI - Command line tool for database export/import operations. |
redb.Core
Classes
| RedbServiceBase | Base abstract class for RedbService implementations. |
Interfaces
| IRedbService | Main REDB service interface - composition of all providers. |
redb.Core.Attributes
Classes
| RedbAliasAttribute | Attribute for specifying a human-readable alias |
| RedbIgnoreAttribute | Excludes a property from the REDB schema (but not from JSON serialization) |
| RedbSchemeAttribute | Attribute for configuring the REDB schema for a properties class |
redb.Core.Caching
Classes
| CacheDiagnosticInfo | Cache diagnostic information. |
| CacheExportData | Exported cache state for analysis. |
| CacheStatistics | Cache statistics. |
| CompleteSchemeMetadata | Complete scheme metadata including scheme, structures and types. |
| CompositeMetadataCacheStatistics | Composite cache summary statistics. |
| DetailedCacheStatistics | Detailed statistics by cache component. |
| GlobalListCache | Domain-isolated cache for lists and their items. |
| GlobalMetadataCache | Metadata cache with domain isolation. |
| GlobalPropsCache | Domain-isolated cache for WHOLE RedbObject (not just Props!). |
| MemoryRedbObjectCache | In-memory cache implementation for WHOLE RedbObject (not just Props!). |
| MemoryUsageInfo | Cache memory usage information. |
| PerformanceInfo | Cache performance information. |
| PropsCacheStatistics | Props object cache statistics. |
| RedbTypeInfo | Type information for caching (DB types, not CLR types). |
| SchemeCacheStatistics | Scheme cache statistics. |
| StaticCacheStatistics | Static cache statistics. |
| StaticMetadataCache | Static metadata cache implementation. |
| StructureCacheStatistics | Structure cache statistics. |
| TopUsedScheme | Top used scheme information. |
| TypeCacheStatistics | Type cache statistics. |
| TypeUsageInfo | Type usage information. |
| UserCacheStats | User cache statistics. |
Interfaces
| ICompositeMetadataCache | Composite metadata cache combining schemes, structures and types. |
| IRedbObjectCache | Interface for caching WHOLE RedbObject objects (not just Props!) |
| ISchemeMetadataCache | Specialized cache for object schemes. |
| IStaticMetadataCache | Interface for static metadata cache in RedbObject. |
| IStructureMetadataCache | Specialized cache for field structures. |
| ITypeMetadataCache | Specialized cache for data types. |
Enums
| CacheHealthStatus | Cache health status enumeration. |
redb.Core.Configuration
Classes
| ConfigurationExtensions | Extension methods for integrating RedbServiceConfiguration with IConfiguration |
| DefaultUserConfigurationInitializer | Default user configuration initializer. |
| EavSaveStrategyJsonConverter | JsonConverter for EavSaveStrategy |
| MissingObjectStrategyJsonConverter | JsonConverter for MissingObjectStrategy |
| ObjectIdResetStrategyJsonConverter | JsonConverter for ObjectIdResetStrategy |
| RedbConfigurationJsonOptions | JsonSerializer settings for RedbService configuration |
| RedbServiceConfigurationValidator | RedbService configuration validator for integration with Options pattern |
| RedbServiceConfigurationValidatorWithAutoFix | Extended validator with auto-fix support |
| ScenarioBasedConfigurationValidator | Validator for specific usage scenarios |
| ServiceCollectionExtensions | Extension methods for registering RedbService in DI container. |
| UserConfigurationService | Database-agnostic implementation of IUserConfigurationService. |
Interfaces
| IRedbServiceConfigurationMonitor | Interface for configuration change monitoring. |
| IUserConfigurationService | Service for managing user configurations |
Enums
| ConfigurationScenario | Configuration usage scenarios |
redb.Core.Data
Classes
| RedbContextBase | Base class for REDB context. |
| RedbKeyGeneratorBase | Base class for key generation with caching. |
Interfaces
| IBulkOperations | Bulk operations abstraction for high-performance data operations. |
| IKeyGenerator | Key generator abstraction for generating unique IDs. |
| IRedbConnection | Database connection abstraction for REDB. |
| IRedbContext | Main database context interface for REDB. |
| IRedbTransaction | Database transaction abstraction for REDB. |
redb.Core.Exceptions
Classes
| ComputedExpressionAnalyzer | Expression analyzer for detecting Pro-only features. |
| RedbProRequiredException | Exception thrown when a feature requires REDB Pro version. |
Enums
| ProFeatureCategory | Categories of Pro-only features for appropriate error messages. |
redb.Core.Extensions
Classes
| RedbObjectExtensions | Extension methods for IRedbObject for convenient work with trees and objects |
| RedbOptionsBuilder | Builder for configuring REDB services. |
| RedbServiceCollectionExtensions | Extension methods for registering REDB services. |
| RedbServiceConfigurationExtensions | Extension methods for working with RedbService configuration |
| RedbServiceInitializationExtensions | Extension methods for initializing REDB system at application startup |
Interfaces
| IRedbOptionsBuilderInfrastructure | Infrastructure interface for database providers and Pro extensions. |
redb.Core.Materialization
Interfaces
| IPropsMaterializer | Materializes Props objects from database values. |
redb.Core.Models
Classes
| ChildObjectInfo | Model for SQL query result when loading object children |
| RedbObjectFactory | Factory for creating typed RedbObject<TProps> objects |
| SchemeWithJson | Model for optimized SQL query result |
redb.Core.Models.Collections
Classes
| TreeCollection | Specialized collection for working with tree-structured objects |
| TreeCollection<TProps> | Typed version of collection for backward compatibility |
| TreeCollectionStats | Tree collection statistics |
redb.Core.Models.Configuration
Classes
| ConfigurationSource | Configuration parameter source |
| ConfigurationValidationError | Configuration validation error |
| ConfigurationValidationResult | Configuration validation result |
| ConfigurationValidationWarning | Configuration validation warning |
| ConfigurationValidator | RedbService configuration validator |
| EffectiveUserConfiguration | Effective user configuration (result of merging all configurations) |
| JsonSerializationOptions | JSON serialization settings |
| PredefinedConfigurations | Predefined configurations for various usage scenarios |
| RedbServiceConfiguration | RedbService behavior configuration. |
| RedbServiceConfigurationBuilder | Builder for convenient RedbService configuration setup |
| UserConfigurationProps | User configuration - personal settings and quotas |
Enums
| ConfigurationValidationSeverity | Configuration validation error severity level |
| EavSaveStrategy | EAV properties save strategy |
| MissingObjectStrategy | Strategy for handling non-existent objects on UPDATE |
| ObjectIdResetStrategy | Object ID handling strategy after deletion |
redb.Core.Models.Contracts
Interfaces
| IRedbList | REDB list interface |
| IRedbListItem | REDB list item interface |
| IRedbObject | Base interface for all REDB objects |
| IRedbObject<TProps> | Typed interface for REDB objects with specific properties type |
| IRedbPermission | REDB permission interface |
| IRedbRole | REDB role interface |
| IRedbScheme | REDB scheme interface |
| IRedbSecurityContext | REDB security context |
| IRedbStructure | REDB scheme field structure interface |
| IRedbType | REDB data type interface |
| IRedbUser | REDB user interface |
| IRedbUserRole | REDB user-role relationship interface |
| ISchemeCacheProvider | Extension of ISchemeSyncProvider with metadata cache management methods |
| ITreeNode<T> | Interface for tree nodes with navigational properties and traversal operations |
| ITreeRedbObject | Interface for REDB tree objects with navigational properties |
| ITreeRedbObject<TProps> | Typed interface for tree objects with specific property type. |
redb.Core.Models.Entities
Classes
| RedbList | REDB list entity with direct data storage (Aggregate Root). |
| RedbListItem | REDB list item entity with direct data storage. |
| RedbObject | Base class for all Redb objects with access to metadata. |
| RedbObject<TProps> | Generic wrapper for JSON from get_object_json with typed interface. |
| RedbObjectRow | POCO for _objects table. |
| RedbPermission | REDB permission entity with direct data storage. |
| RedbRole | REDB role entity with direct data storage. |
| RedbScheme | REDB scheme entity with direct data storage. |
| RedbStructure | REDB structure (field definition) entity with direct data storage. |
| RedbType | REDB type entity with direct data storage. |
| RedbUser | REDB user entity with direct data storage. |
| RedbUserRole | REDB user-role association entity with direct data storage. |
| RedbValue | REDB value entity with direct data storage. |
| StructureTreeBuilder | Structure tree builder from flat lists |
| StructureTreeNode | Structure tree node for hierarchical navigation |
| TreeDiagnosticReport | Structure tree diagnostic report |
| TreeRedbObject | Base class for REDB tree objects with hierarchy navigation |
| TreeRedbObject<TProps> | ARCHITECTURAL FIX: Typed version of REDB tree object |
redb.Core.Models.Enums
Enums
| PermissionAction | Permission actions (flags for combining) |
| UserStatus | User status |
redb.Core.Models.Permissions
Classes
| CacheStatistics | Permissions cache statistics |
| EffectivePermissionResult | Result of getting user's effective permissions on object |
| PermissionFlagsExtensions | Extensions for working with PermissionFlags |
| PermissionRequest | Request for creating or updating permission |
| UserPermissionResult | |
| UserPermissionSet | User permissions set for caching |
| VUserPermission |
Enums
| PermissionFlags | Permission flags for REDB objects |
redb.Core.Models.Roles
Classes
| CreateRoleRequest | Request for creating new role |
redb.Core.Models.Security
Classes
| AmbientSecurityContext | Ambient security context (Thread-Local) |
| RedbSecurityContext | REDB security context implementation |
redb.Core.Models.Users
Classes
| CreateUserRequest | Request for creating new user |
| UpdateUserRequest | Request for updating user data |
| UserSearchCriteria | User search criteria |
| UserValidationResult | User data validation result |
| ValidationError | Validation error |
Enums
| UserSortDirection | User sort direction |
| UserSortField | Fields for sorting users |
redb.Core.Pro.ChangeTracking
Classes
| TreeChange | Change in data tree. |
| ValueTreeBuilder | Tree builder from memory and DB. |
| ValueTreeDiff | Tree comparison with hash optimization. |
| ValueTreeNode | Tree node for tree-based ChangeTracking. |
Enums
| ChangeType | Change type when comparing trees. |
redb.Core.Pro.Extensions
Classes
| RedbProServiceCollectionExtensions | Extension methods for registering REDB Pro services. |
redb.Core.Pro.Licensing
Classes
| LicenseExpiredException | Thrown when an educational license has expired. |
| LicenseInfo | License information parsed from JWT token. |
| LicenseManagerWrapper | Wrapper for external API. Delegates to static LicenseGuard internally. |
| LicenseRequiredException | Exception thrown when trial limit is exceeded and a license is required. |
| LicenseValidator | Validates JWT license tokens using RSA public keys from TrustedIssuers. |
| TrustedIssuers | Registry of trusted license issuers and their RSA public keys. |
Interfaces
| ILicenseManager | License manager interface for Pro features. |
redb.Core.Pro.Materialization
Classes
| ProLazyPropsLoader | Pro implementation of lazy Props loading with PVT materialization. |
| ProPropsMaterializer | Pro Props materializer with optimized algorithms. |
redb.Core.Pro.Migration
Classes
| MigrationBuilder<TProps> | IMigrationBuilder implementation - collects migration configurations |
| MigrationDiscovery | Automatic migration discovery in assemblies. |
| MigrationExecutor | Executes data migrations with support for dry-run, logging and history. |
| MigrationExpressionCompiler | Expression to SQL compiler for migrations. |
| MigrationExtensions | Extension methods for working with migrations. |
| MigrationInfo | Found migration information |
| MigrationResult | Migration execution result |
| MigrationServiceCollectionExtensions | DI registration for migration services. |
| MigrationSql | Migration compilation result to SQL |
| PropertyMigrationBuilder<TProps, TProp> | IPropertyMigrationBuilder implementation |
| PropertyMigrationConfig | Migration configuration for single property |
| TypeChangeMigrationBuilder<TProps, TFrom, TTo> | ITypeChangeMigrationBuilder implementation |
Interfaces
| IMigrationBuilder<TProps> | Builder for configuring property migrations. |
| IPropertyMigrationBuilder<TProps, TProp> | Builder for configuring migration of specific property |
| IRedbMigration<TProps> | Migration configuration interface for Props type. |
| ITypeChangeMigrationBuilder<TProps, TFrom, TTo> | Builder for configuring type conversion |
Enums
| MigrationType | Migration type |
redb.Core.Pro.Models
Classes
| RedbMigrationRow | POCO for _migrations table. |
| SchemeMetadataCacheRow | POCO for _scheme_metadata_cache table. |
redb.Core.Pro.Providers
Classes
| ProObjectStorageProviderBase | 🌳 Tree-based ChangeTracking logic (partial class). |
| ProTreeProviderBase | Pro base class for TreeProvider with PVT instead of get_object_json. |
redb.Core.Pro.Query
Classes
| ProFilterExpressionParser | Pro version of FilterExpressionParser - supports arithmetic, functions and complex expressions. |
| ProSqlBuilderBase | Base SQL builder for Pro version with database-agnostic methods. |
| SqlParameterCollector | Parameter collector for safe SQL query generation. |
Interfaces
| ISqlDialectPro | Pro extension of ISqlDialect with additional SQL methods for Pro features. |
redb.Core.Pro.Query.Models
Classes
| CompiledPvtQuery | Compiled PVT query with SQL template and metadata. |
redb.Core.Pro.Schema
Classes
| SchemeFieldResolver | Resolver for fields: path to field → structure_id + db_type. |
redb.Core.Providers
Classes
| SchemaChangeReport | Schema change report. |
| SchemaValidationResult | Schema validation result. |
| StructureChange | Structure change. |
| SupportedType | Supported type information. |
| TypeMigrationResult | Result of data type migration. |
| ValidationIssue | Validation issue. |
Interfaces
| ILazyPropsLoader | Interface for lazy loading of RedbObject Props. |
| IListProvider | Provider for working with dictionaries (Lists) and their items (ListItems). |
| IObjectStorageProvider | Provider for saving/loading objects in EAV storage. |
| IPermissionProvider | Provider for access permission management. |
| IQueryableProvider | Provider for creating LINQ queries (high-level API). |
| IRoleProvider | Provider for user role management. |
| ISchemeSyncProvider | Provider for scheme and structure management (Code-First). |
| ITreeProvider | Provider for tree structure operations. |
| IUserProvider | Provider for user management. |
| IValidationProvider | Provider for schema and type validation. |
Enums
| ChangeType | Change type. |
| ValidationSeverity | Validation issue severity level. |
redb.Core.Providers.Base
Classes
| ChildObjectInfo | DTO for child object query result. |
| ListProviderBase | Base class for IListProvider implementations. |
| ObjectStorageProviderBase | 🚀 BULK INSERT - high-performance creation of multiple objects |
| ObjectStorageProviderExtensions | Extensions for PostgresObjectStorageProvider under the new saving paradigm |
| PermissionProviderBase | Base implementation of permission provider with common business logic. |
| QueryableProviderBase | Base class for IQueryableProvider implementations. |
| RoleProviderBase | Base implementation of role provider with common business logic. |
| SchemeSyncProviderBase | Base class for scheme synchronization provider. |
| SchemeWithJson | DTO for scheme + JSON query result. |
| TreeProviderBase | Base class for tree provider with all platform-agnostic logic. |
| UserProviderBase | Base implementation of user provider with common business logic. |
| ValidationProviderBase | Base class for validation provider. |
redb.Core.Providers.Base.ObjectStorageProviderBase
Classes
| ObjectStorageProviderBase.StructureFullInfo | 📋 Structure with full information for ChangeTracking |
redb.Core.Providers.Base.TreeProviderBase
redb.Core.Query
Classes
| FacetFilterBuilder | Builds JSON filters for search_objects_with_facets function. |
| OrderingExpressionParser | Parses ordering expressions from LINQ to REDB query format. |
| QueryContext<TProps> | Query context - contains all information about LINQ query |
| RedbProjectedQueryable<TProps, TResult> | Implementation of LINQ query projections in REDB with filtering and sorting support |
| RedbProjectedQueryableTaskExtensions | Extension methods for Task<IRedbProjectedQueryable<T>> to avoid double await. |
| RedbQueryable<TProps> | Basic implementation of IRedbQueryable |
| RedbQueryableExtensions | Extension methods for IRedbQueryable. |
| Sql | SQL functions for use in LINQ expressions. |
| SqlPreviewResult | Result of SQL preview function execution. |
| TreeProjectedQueryable<TProps, TResult> | Implementation of projections for tree LINQ queries in REDB |
Interfaces
| IOrderedRedbQueryable<TProps> | Interface for ordered queries (after OrderBy). |
| IRedbProjectedQueryable<TResult> | Interface for LINQ query projections in REDB. |
| IRedbQueryable<TProps> | Main interface for type-safe LINQ queries to REDB. |
| IRedbQueryProvider | Provider for executing LINQ queries. |
| ISqlDialect | SQL syntax abstraction for different DBMS support. |
| ITreeQueryProvider | Extended provider for executing tree LINQ queries. |
redb.Core.Query.Aggregation
Classes
| Agg | Static helper for creating aggregate expressions in Select |
| AggregateRequest | Request for batch aggregation of multiple fields. |
| AggregateResult | Batch aggregation result. |
| FieldStatistics<T> | Result of GetStatisticsAsync - all aggregates for field. |
| Win | Static helper for window functions |
Enums
| AggregateFunction | Aggregate function types for EAV fields. |
redb.Core.Query.Base
Classes
| QueryProviderBase | Base query provider for executing LINQ queries via search_objects_with_facets. |
| TreeFilter | Tree filter - representation of hierarchical operator |
| TreeQueryableBase<TProps> | Base tree queryable for hierarchical LINQ queries. |
| TreeQueryContext<TProps> | Tree query context - extends QueryContext with tree parameters support |
| TreeQueryProviderBase | Base tree query provider for executing hierarchical LINQ queries via search_tree_objects_with_facets... |
Enums
| TreeFilterOperator | Tree operator types (correspond to SQL operators from search_tree_objects_with_facets) |
redb.Core.Query.Caching
Classes
| ExpressionSqlCache | Cache for compiled SQL templates. |
redb.Core.Query.Expressions
Classes
| FieldNameExtractor | Extracts field names from LINQ Expression tree. |
redb.Core.Query.FacetFilters
Classes
| QueryParameters | Query parameters. |
Interfaces
| IFacetFilterBuilder | JSON filter builder for search_objects_with_facets. |
redb.Core.Query.Filtering
Classes
| ArrayAnd | AND node - all child conditions must be true. |
| ArrayFilterExtractor | [OBSOLETE] This class is no longer used in Pro version. |
| ArrayFilterNode | Tree structure for ArrayContains filter operations. |
| ArrayLeaf | Leaf node - a specific operation on an array field. |
| ArrayNot | NOT node - negation of inner condition. |
| ArrayOr | OR node - at least one child condition must be true. |
| FilterFieldExtractor | Extracts field information from FilterExpression tree. |
Enums
| ArrayLeafOperator | Operators for array leaf nodes. |
redb.Core.Query.Filtering.ArrayFilterExtractor
Classes
| ArrayFilterExtractor.ExtractionResult | Extraction result containing both PVT filter and Array filter. |
redb.Core.Query.Grouping
Classes
| GroupedWindowedQueryable<TKey, TProps> | Queryable for applying window functions to grouped data. |
| GroupedWindowSpec<TKey, TProps> | Window specification for grouped queries. |
| GroupFieldRequest | Request for grouping field for SQL function aggregate_grouped |
| RedbArrayGroupedQueryable<TKey, TItem, TProps> | Grouping by array elements (Items[].Property) |
| RedbGroupedQueryable<TKey, TProps> | Implementation of REDB grouped queries |
| TreeGroupedQueryable<TKey, TProps> | Tree-aware grouped queryable that preserves TreeQueryContext for proper CTE generation. |
| TreeGroupedWindowedQueryable<TKey, TProps> | Tree-aware GroupBy + Window queryable. |
Interfaces
| IGroupedWindowedQueryable<TKey, TProps> | Queryable for applying window functions to grouped data. |
| IGroupedWindowSpec<TKey, TProps> | Window specification for grouped queries. |
| IRedbGroupedQueryable<TKey, TProps> | Interface for grouped REDB queries. |
| IRedbGrouping<TKey, TProps> | Represents group of objects with common key. |
redb.Core.Query.Mapping
Classes
| BaseFieldMapper | Maps C# property names to SQL column names for base RedbObject fields. |
| DbTypeMapper | Maps redb DbType names to _values column names. |
redb.Core.Query.Models
Classes
| CompiledQuery | Compiled SQL query with template and metadata. |
| FieldInfo | Metadata about a field in the PVT query. |
Enums
| ListItemProperty | Specifies which property of ListItem is being accessed. |
redb.Core.Query.Parameters
Classes
| SqlParameterCollectorBase | Base class for SQL parameter collection. |
redb.Core.Query.Parsing
Classes
| BaseFilterExpressionParser | Base class for parsing LINQ expressions to FilterExpression. |
| FilterExpressionParser | OpenSource implementation of FilterExpressionParser. |
redb.Core.Query.Projection
Classes
| AggregationInfo | Aggregation information |
| FieldPathInfo | Field path information |
| ProjectionFieldExtractor | Extracts structure_ids from Select expression to optimize _values loading. |
redb.Core.Query.QueryExpressions
Classes
| ArithmeticExpression | Arithmetic expression (Pro Only) |
| ComparisonExpression | Comparison expression (property operator value) |
| ConstantValueExpression | Constant value |
| CustomFunctionExpression | Custom SQL function (Pro Only) |
| FilterExpression | Base class for filter expressions |
| FunctionCallExpression | Function call on value (Pro Only) |
| InExpression | Expression for checking inclusion in list |
| LogicalExpression | Logical expression (AND, OR, NOT) |
| NullCheckExpression | Expression for null check |
| OrderingExpression | Sorting information. |
| PropertyInfo | Field information in expression |
| PropertyValueExpression | Reference to object property |
| ValueExpression | Base class for value expressions (Pro version) |
Interfaces
| IExpressionVisitor<TResult> | Interface for processing Expression Tree |
| IFilterExpressionParser | Parser for converting Where expressions to FilterExpression |
| IOrderingExpressionParser | Parser for converting OrderBy expressions to OrderingExpression |
Enums
| ArithmeticOperator | Arithmetic operators (Pro Only). |
| ComparisonOperator | Comparison operators |
| LogicalOperator | Logical operators |
| PropertyFunction | Functions that can be applied to property |
| SortDirection | Sort direction |
redb.Core.Query.Utils
Classes
| JsonValueConverter | Unified converter JsonElement → CLR types for EAV |
redb.Core.Query.Window
Classes
| Frame | Static helper for creating frames |
| FrameBound | Frame boundary |
| FrameBuilder | Builder for creating FrameSpec |
| FrameSpec | Frame specification for window functions |
| RedbWindowedQueryable<TProps> | Implementation of queries with window functions |
| TreeWindowedQueryable<TProps> | Implementation of queries with window functions for TreeQueryable. |
| WindowFieldRequest | |
| WindowFuncRequest | |
| WindowOrderRequest | |
| WindowSpec<TProps> | Implementation of window specification |
Interfaces
| IRedbWindowedQueryable<TProps> | Interface for queries with window functions. |
| IWindowSpec<TProps> | Window specification for Window Functions. |
Enums
| FrameBoundType | Window boundary type |
| FrameType | Frame type: ROWS or RANGE |
redb.Core.Schema
Interfaces
| ISchemeFieldResolver | Resolves field paths to FieldInfo with structure_id and db_type. |
redb.Core.Security
Classes
| SimplePasswordHasher | Password hasher implementation using SHA256 + salt. |
Interfaces
| IPasswordHasher | Interface for password hashing operations. |
redb.Core.Serialization
Classes
| FlexibleDateOnlyConverter | Flexible converter for DateOnly - supports DateTime strings |
| FlexibleNullableDateOnlyConverter | Flexible converter for nullable DateOnly |
| FlexibleNullableTimeOnlyConverter | Flexible converter for nullable TimeOnly |
| FlexibleNullableTimeSpanConverter | Flexible converter for nullable TimeSpan |
| FlexibleTimeOnlyConverter | Flexible converter for TimeOnly - supports TimeSpan strings |
| FlexibleTimeSpanConverter | Flexible converter for TimeSpan - supports strings |
| NullToDefaultConverter<T> | Converter that returns default(T) when JSON contains null for a non-nullable value type. |
| NullToDefaultConverterFactory | Factory that creates converters to handle JSON null → default(T) for non-nullable value types. |
| PolymorphicRedbObjectConverter | ✅ Polymorphic converter for IRedbObject |
| PostgresDateTimeOffsetConverter | ✅ DateTimeOffset converter for PostgreSQL timestamptz. |
| PostgresInfinityDateTimeConverter | ✅ FIX FOR "-infinity" PROBLEM: DateTime converter for handling PostgreSQL "-infinity" |
| PostgresInfinityNullableDateTimeConverter | ✅ FIX FOR "-infinity" PROBLEM: Nullable DateTime converter for handling PostgreSQL "-infinity" |
| PostgresNullableDateTimeOffsetConverter | ✅ Nullable DateTimeOffset converter for PostgreSQL timestamptz. |
| SystemTextJsonRedbSerializer | |
| ValueTupleDictionaryConverter<TKey, TValue> | JsonConverter for Dictionary with complex keys (ValueTuple, classes). |
| ValueTupleDictionaryConverterFactory | Factory for creating JsonConverters for Dictionary with ValueTuple keys. |
Interfaces
| IRedbObjectSerializer |
redb.Core.Services
Classes
| BackgroundDeletionService | Background deletion service with queue-based processing. |
| DeletionMark | Result of marking objects for deletion. |
| OrphanedTask | Orphaned deletion task found at startup. |
| PurgeProgress | Progress of trash purge operation. |
Interfaces
| IBackgroundDeletionService | Background deletion service with queue-based processing. |
Enums
| PurgeStatus | Status of a purge operation. |
redb.Core.Utils
Classes
| appExt | |
| AutomaticTypeRegistry | Automatic type registry for polymorphic work with REDB objects |
| DateTimeConverter | Centralized DateTime conversion logic. |
| RedbHash | Utility for computing MD5 hash from object properties. |
| RedbKeySerializer | Serializes and deserializes Dictionary keys to/from _array_index (text) storage. |
| RedbTypeIds | System type IDs for REDB. Matches _types table in database. |
| RedbTypeMapping | Helper methods for REDB type mapping between C# types and database columns |
| SchemeHashCalculator | Utility for computing MD5 hash of scheme structure. |
| TreeExtensions | Extensions for working with tree structures. |
| TreeObjectConverter | Utility class for converting between RedbObject and TreeRedbObject types. |
| ValuesTopologicalSort | Topological sorting of _values to maintain FK constraint on _array_parent_id. |
redb.Examples.Examples
Classes
| E000_BulkInsert | Example: Bulk insert of complex employee records. |
| E001_SaveAsync | Example: Create and save a new employee. |
| E002_LoadAsync | Example: Load employee by ID. |
| E010_WhereSimple | Example: Simple Where filter by salary. |
| E011_WhereAnd | Example: Where with AND - filter by age and salary. |
| E012_WhereOr | Filter employees using OR condition. |
| E013_WhereNot | Filter employees using NOT equal condition. |
| E014_WhereRange | Filter employees by salary range. |
| E015_WhereTripleAnd | Filter employees using triple AND condition. |
| E016_WhereChain | Filter employees using chained Where() calls. |
| E020_DateTimeGreater | Filter employees by hire date. |
| E021_DateTimeRange | Filter employees by date range. |
| E030_StringContains | Filter employees using String.Contains. |
| E031_StringStartsWith | Filter employees using String.StartsWith. |
| E032_StringContainsIgnoreCase | Filter using case-insensitive String.Contains. |
| E040_NestedProperty | Filter employees by nested property. |
| E041_DeepNested | Filter employees by deeply nested property. |
| E050_ArrayContains | Query employees by skill using Array.Contains. |
| E051_ArrayMultiple | Query employees with multiple skills using Array.Contains with OR. |
| E052_ArrayNotContains | Query employees excluding specific skill. |
| E053_ArrayWithConditions | Query employees combining array Contains with other conditions (Pro). |
| E060_DictContainsKey | Query employees using Dictionary.ContainsKey. |
| E061_DictIndexer | Query employees using Dictionary indexer. |
| E062_DictNestedClass | Query employees using Dict indexer with nested class (Pro). |
| E063_DictTupleKey | Query employees using Dict with tuple key (Pro). |
| E070_CountAsync | Count employees using CountAsync. |
| E071_AnyAsync | Check if any employees exist using AnyAsync(). |
| E072_AnyWithPredicate | Check if any employees match a condition using AnyAsync(predicate). |
| E073_AllAsync | Check if ALL employees match a condition using AllAsync(predicate). |
| E074_WhereIn | Filter employees by a list of values using WhereIn. |
| E075_Select | Project specific fields using Select (server-side projection). |
| E076_Distinct | Get unique objects by Props hash using Distinct(). |
| E080_OrderBy | Sort employees by salary using OrderBy. |
| E081_OrderByThenBy | Sort employees by multiple fields using ThenBy. |
| E082_SkipTake | Paginate employees using Skip and Take. |
| E083_OrderByDescending | Sort employees in descending order using OrderByDescending. |
| E087_TreeCleanup | Cleanup existing tree data before E088/E089 tests. |
| E088_TreeCreateBulk | BULK create tree hierarchy (Pro feature) - FAST version. |
| E089_TreeCreate | Sequential create tree hierarchy (Pro feature) - SLOW version. |
| E090_TreeLoad | Load full tree with LoadTreeAsync. |
| E091_TreeCount | Count tree nodes with TreeQuery. |
| E092_TreeChildren | Get direct children of a node. |
| E093_TreePath | Get path from node to root. |
| E094_TreeDescendants | Get all descendants of a node. |
| E095_TreeMove | Move node to new parent. |
| E096_TreeQuery | LINQ queries on tree structures. |
| E097_TreeQueryRoots | Find root nodes in tree. |
| E098_TreeQueryLeaves | Find leaf nodes in tree. |
| E099_TreeQueryLevel | Filter tree nodes by level. |
| E100_TreeTraversalDFS | Depth-First traversal of tree. |
| E101_TreeTraversalBFS | Breadth-First traversal of tree. |
| E102_TreeIsDescendant | Check if node is descendant of another. |
| E103_TreeIsAncestor | Check if node is ancestor of another. |
| E104_TreeGetLevel | Get tree level of a node. |
| E105_TreeQueryWithRoot | TreeQuery scoped to specific root. |
| E106_TreeQueryChildrenOf | Query direct children of a node. |
| E107_TreeQueryMultiRoot | TreeQuery with multiple root parents. |
| E108_TreeToTreeList | ToTreeListAsync with Parent chain. |
| E109_TreeToRootList | ToRootListAsync - get full tree structure. |
| E110_TreeWhereHasAncestor | WhereHasAncestor - polymorphic ancestor filter. |
| E111_TreeWhereHasDescendant | WhereHasDescendant - find parents by child criteria. |
| E112_TreeStats | Tree statistics via TreeCollection. |
| E113_TreeToFlatList | Load tree nodes as flat list without Parent/Children links. |
| E114_ListCreate | Creates a new RedbList (dictionary/lookup table). |
| E115_ListAddItems | Adds multiple items to a RedbList using AddItemsAsync. |
| E116_ListGetByName | Gets a RedbList by name and retrieves its items. |
| E117_ListItemWithObject | Creates a ListItem with linked RedbObject. |
| E118_PropsListItemField | Object with ListItem field in Props. |
| E119_PropsListItemArray | Object with List of ListItems field in Props. |
| E120_ListItemWhereByValue | Query filtering by ListItem.Value property. |
| E121_ListItemWhereIn | Query filtering by ListItem.Value using WhereIn. |
| E122_ListItemDirectCompare | Query filtering by direct ListItem comparison. |
| E123_ListItemArrayAny | Query filtering by ListItem array using Any(). |
| E124_SumAsync | Calculates sum of a numeric field using SumAsync. |
| E125_AverageAsync | Calculates average of a numeric field using AverageAsync. |
| E126_MinMaxAsync | Calculates min and max of numeric fields using MinAsync/MaxAsync. |
| E127_AggregateAsync | Batch aggregation with multiple functions in single query. |
| E128_GroupBySimple | Groups objects by a field and calculates aggregates per group. |
| E129_GroupByFiltered | GroupBy with Where filter applied before grouping. |
| E130_GroupByMultiKey | GroupBy with composite key (multiple fields). |
| E131_GroupByRedb | GroupBy on base RedbObject fields without JOIN. |
| E132_WindowRowNumber | Window function ROW_NUMBER() with PARTITION BY. |
| E133_WindowRunningSum | Window function SUM() OVER for running totals. |
| E134_WindowLagLead | Window functions LAG/LEAD for previous/next values. |
| E135_WindowRank | Window functions RANK/DENSE_RANK for ranking with ties. |
| E136_WindowNtile | Window function NTILE for bucket distribution. |
| E137_WindowFirstLast | Window functions FIRST_VALUE/LAST_VALUE. |
| E138_WindowFrame | Window function with custom frame (sliding window). |
| E139_DistinctRedb | DISTINCT ON base fields (without Id) for finding duplicates. |
| E140_DistinctByRedb | DISTINCT ON specific base field. |
| E141_WhereInRedb | Filter by list of base field values. |
| E142_GroupByArray | Groups objects by elements of an array field using GroupByArray. |
| E143_SumRedbAsync | SumRedbAsync - sum of base IRedbObject field WITHOUT JOIN to _values. |
| E144_MinMaxRedbAsync | MinRedbAsync/MaxRedbAsync - min/max of base IRedbObject fields WITHOUT JOIN. |
| E145_AverageRedbAsync | AverageRedbAsync - average of base IRedbObject field WITHOUT JOIN. |
| E146_AggregateRedbAsync | AggregateRedbAsync - batch aggregation of base IRedbObject fields in ONE query. |
| E147_WindowPartitionByRedb | PartitionByRedb in Window Functions - partition by base IRedbObject field. |
| E148_WindowOrderByRedb | OrderByRedb in Window Functions - order by base IRedbObject field. |
| E149_SelectProjection | Select projection - load only specific fields instead of full object. |
| E150_ArrayAggregation | Array aggregation - aggregate all elements of array field or specific index. |
| E151_ArithmeticMultiply | Demonstrates arithmetic multiplication in Where clause. |
| E152_ArithmeticAddFields | Demonstrates arithmetic operations combining multiple fields in Where clause. |
| E153_StringToLower | Demonstrates case-insensitive string search using ToLower() in Where clause. |
| E154_StringTrim | Demonstrates Trim() function in Where clause to filter out empty or whitespace-only values. |
| E155_StringChain | Demonstrates chaining multiple string functions in Where clause. |
| E156_MathAbs | Demonstrates Math.Abs() in Where clause for range filtering around a target value. |
| E157_DateTimeYear | Demonstrates DateTime property extraction in WhereRedb clause. |
| E158_Parentheses | Demonstrates parentheses for operation priority in Where clause. |
| E159_NestedMath | Demonstrates nested Math functions with arithmetic in Where clause. |
| E160_TreeQueryExpressions | Demonstrates arithmetic expressions in TreeQuery Where clause. |
| E161_SqlFunctionCoalesce | Demonstrates Sql.Function for calling custom SQL functions. |
| E162_SqlFunctionPower | Demonstrates Sql.Function for mathematical SQL functions. |
| E163_SqlFunctionNested | Demonstrates nested Sql.Function calls for complex SQL expressions. |
| E164_BaseFieldsSingle | Demonstrates using RedbObject base fields without Props (EAV values). |
| E165_BaseFieldsBatch | Demonstrates batch save/load of non-generic RedbObject with base fields. |
| E166_GenericNullProps | Demonstrates using generic RedbObject<TProps> with Props=null. |
| E167_MixedBatch | Demonstrates mixed batch save with both non-generic RedbObject and generic RedbObject<T> with Props=... |
| E168_ArrayContains | Demonstrates filtering by array element using Contains(). |
| E169_ArrayContainsOr | Demonstrates filtering by multiple array elements using Contains with OR. |
| E170_ArrayContainsAnd | Demonstrates filtering by multiple array elements using Contains with AND. |
| E171_ScalarPlusArray | Demonstrates combining scalar field filter with array Contains filter. |
| E172_StringLength | Demonstrates String.Length property in Where clause. |
| E173_TreeQueryGroupBy | Demonstrates GroupBy aggregation on TreeQuery. |
| E174_TreeQueryWindow | Demonstrates Window Functions on TreeQuery. |
| E175_TreeQueryGroupByWindow | Demonstrates GroupBy + Window Functions on TreeQuery. |
| E176_TreeDistinctBy | Demonstrates DistinctBy on TreeQuery to get unique tree nodes by a Props field. |
| E177_TreeDistinctByRedb | Demonstrates DistinctByRedb on TreeQuery to get unique tree nodes by a base field. |
| E178_TreeOrderBy | Demonstrates OrderBy on TreeQuery to sort tree nodes by a Props field. |
| E179_TreeOrderByDescending | Demonstrates OrderByDescending on TreeQuery to sort tree nodes in reverse order. |
| E180_TreeDistinctByOrderBy | Demonstrates combining DistinctBy and OrderByDescending on TreeQuery. |
| E181_DeleteSingle | Demonstrates deleting a single object by ID. |
| E182_DeleteBatch | Demonstrates batch deletion of multiple objects. |
| E183_FirstOrDefaultAsync | Demonstrates FirstOrDefaultAsync to get a single object matching criteria. |
| E184_WhereNullable | Demonstrates filtering by nullable fields. |
| E185_WhereBool | Demonstrates filtering by conditions that can be simplified. |
| E186_ObjectReference | Demonstrates loading objects with RedbObject references. |
| E187_UpdateExisting | Demonstrates updating an existing object by loading, modifying, and saving it. |
| E190_SumAsyncFiltered | SumAsync with Where filter applied before aggregation. |
| E191_WindowFiltered | Window function with Where filter applied before windowing. |
| E192_AggregateFiltered | Multiple aggregations with Where filter applied before aggregation. |
| E193_AverageAsyncFiltered | AverageAsync with Where filter applied before aggregation. |
| E194_MinMaxAsyncFiltered | MinAsync/MaxAsync with Where filter applied before aggregation. |
| E195_GroupByWindowFiltered | GroupBy + Window with Where filter applied before grouping. |
| ExampleBase | Base class for all examples. |
| ExampleMetaAttribute | Attribute to mark example classes with metadata. |
redb.Examples.Models
Classes
| Address | Address with city, street and building details. |
| BuildingInfo | Building information with floor and amenities. |
| CityProps | City props for list examples (linked objects). |
| Contact | Contact information (email, phone, etc). |
| ContactDetail | Contact detail key-value pair. |
| Department | Department info with tags, metrics and nested budget data. |
| DepartmentProps | Department props for tree examples (corporate hierarchy). |
| EmployeeProps | Employee props - main model for examples. |
| ExampleResultProps | Props for storing example test results in redb database. |
| PersonProps | Person props demonstrating ListItem fields. |
| PlatformResult | Platform-specific test result (Count, Time, Status). |
| ProjectMetricsProps | Project metrics for analytics. |
| Tag | Tag with priority for categorization. |
redb.Examples.Output
Classes
| ExampleResult | Result of running an example. Used for unified output. |
| TableCell | Cell with optional color highlighting. |
| TablePrinter | Simple table printer with Unicode box-drawing and color support. |
Enums
| ExampleTier | License tier for examples. |
redb.Export.Models
Classes
| ExportFooter | Represents the footer (trailer) record of a .redb export file. |
| ExportHeader | Represents the header record of a .redb export file. |
| ExportRecord | Abstract base class for all data records in a .redb JSONL stream. |
| ListItemRecord | Represents a row from the _list_items table. |
| ListRecord | Represents a row from the _lists table (enumeration/lookup list). |
| ObjectRecord | Represents a row from the _objects table (entity instance). |
| PermissionRecord | Represents a row from the _permissions table. |
| RoleRecord | Represents a row from the _roles table. |
| SchemeRecord | Represents a row from the _schemes table (schema/class definition). |
| StructureRecord | Represents a row from the _structures table (field/property definition). |
| TypeRecord | Represents a row from the _types table (REDB type definition). |
| UserRecord | Represents a row from the _users table. |
| UserRoleRecord | Represents a row from the _users_roles junction table. |
| ValueRecord | Represents a row from the _values table (EAV property value). |
redb.Export.Providers
Classes
| MssqlProvider | implementation for Microsoft SQL Server. |
| PostgresProvider | implementation for PostgreSQL. |
| ProviderFactory | Factory that creates instances by provider name. |
Interfaces
| IDataProvider | Abstracts database-specific operations required by the export/import pipeline. |
redb.Export.Services
Classes
| ExportService | Exports an entire REDB database (or a filtered subset of schemes) to a .redb file. |
| ImportService | Imports data from a .redb file into a REDB database. |
redb.MSSql
Classes
| RedbService | MSSQL implementation of IRedbService. |
redb.MSSql.Data
Classes
| SqlBulkOperations | MS SQL Server implementation of IBulkOperations using SqlBulkCopy. |
| SqlKeyGenerator | MS SQL Server implementation of key generator. |
| SqlRedbConnection | MS SQL Server implementation of IRedbConnection using Microsoft.Data.SqlClient. |
| SqlRedbContext | MS SQL Server implementation of REDB context. |
| SqlRedbTransaction | MS SQL Server implementation of IRedbTransaction using SqlTransaction. |
redb.MSSql.Extensions
Classes
| MsSqlOptionsExtensions | MSSQL provider extensions for RedbOptionsBuilder. |
redb.MSSql.Pro.Extensions
Classes
| MsSqlProOptionsExtensions | MSSQL Pro provider extensions for RedbOptionsBuilder. |
| ProServiceCollectionExtensions | Extensions for registering Pro services in DI container. |
redb.MSSql.Pro.Providers
Classes
| ProMssqlObjectStorageProvider | MSSqlQL Pro version of ObjectStorageProvider. |
| ProMssqlTreeProvider | MSSqlQL Pro version of TreeProvider. |
| ProQueryableProvider | ⚡ Pro version of QueryableProvider - uses ProQueryProvider for PVT optimizations. |
redb.MSSql.Pro.Query
Classes
| ExpressionToSqlCompiler | Compiles C# Expression to SQL WHERE clause for PVT (T-SQL syntax). |
| FieldAliasMapping | Maps original field path to SQL alias for materialization. |
| ProQueryProvider | ProQueryProvider: PVT-based Batch Aggregation. |
| ProSqlBuilder | T-SQL-specific SQL builder for Pro version. |
| ProTreeQueryProvider | ProTreeQueryProvider - Aggregation for trees (partial). |
| PvtSqlGenerator | PVT SQL generator for T-SQL syntax. |
| TreeQuerySqlResult | Result of SQL generation for Tree Query |
redb.MSSql.Pro.Query.PvtSqlGenerator
Classes
| PvtSqlGenerator.PvtCteResult | Result of GeneratePvtCte - contains CTE SQL and join info. |
redb.MSSql.Pro.Services
Classes
| ProRedbService | Pro version of RedbService - replaces _queryProvider with ProQueryableProvider. |
redb.MSSql.Pro.Sql
Classes
| ProMsSqlDialect | Pro version of MS SQL Server dialect. |
redb.MSSql.Providers
Classes
| LazyPropsLoader | OpenSource implementation of lazy Props loading for MS SQL Server. |
| MssqlListProvider | MS SQL Server implementation of IListProvider. |
| MssqlObjectStorageProvider | MS SQL Server implementation of ObjectStorageProvider. |
| MssqlPermissionProvider | MS SQL Server implementation of permission provider. |
| MssqlQueryableProvider | MS SQL Server implementation of IQueryableProvider. |
| MssqlRoleProvider | MS SQL Server implementation of role provider. |
| MssqlSchemeSyncProvider | MS SQL Server implementation of scheme synchronization provider. |
| MssqlTreeProvider | MS SQL Server implementation of tree provider. |
| MssqlUserProvider | MS SQL Server implementation of user provider. |
| MssqlValidationProvider | MS SQL Server implementation of validation provider. |
redb.MSSql.Query
Classes
| MssqlQueryProvider | MS SQL Server query provider implementation. |
| MssqlTreeQueryable<TProps> | MS SQL Server tree queryable implementation. |
| MssqlTreeQueryProvider | MS SQL Server tree query provider implementation. |
redb.MSSql.Sql
Classes
| MsSqlDialect | MS SQL Server implementation of ISqlDialect. |
redb.Postgres
Classes
| RedbService | PostgreSQL implementation of IRedbService. |
redb.Postgres.Configuration
Classes
| UserConfigurationService | Service for managing user configurations. |
redb.Postgres.Data
Classes
| NpgsqlBulkOperations | PostgreSQL implementation of IBulkOperations using COPY protocol. |
| NpgsqlKeyGenerator | PostgreSQL implementation of key generator. |
| NpgsqlRedbConnection | PostgreSQL implementation of IRedbConnection using Npgsql. |
| NpgsqlRedbContext | PostgreSQL implementation of REDB context. |
| NpgsqlRedbTransaction | PostgreSQL implementation of IRedbTransaction using Npgsql. |
redb.Postgres.Extensions
Classes
| PostgresOptionsExtensions | PostgreSQL provider extensions for RedbOptionsBuilder. |
| RedbServiceExtensions | Extension methods for unified REDB registration following EF Core AddDbContext pattern |
| ServiceCollectionExtensions | Extension methods for registering RedbService in DI container. |
redb.Postgres.Pro.Extensions
Classes
| PostgresProOptionsExtensions | PostgreSQL Pro provider extensions for RedbOptionsBuilder. |
| ProServiceCollectionExtensions | Extensions for registering Pro services in DI container. |
redb.Postgres.Pro.Providers
Classes
| ProPostgresObjectStorageProvider | PostgreSQL Pro version of ObjectStorageProvider. |
| ProPostgresTreeProvider | PostgreSQL Pro version of TreeProvider. |
| ProQueryableProvider | ⚡ Pro version of QueryableProvider - uses ProQueryProvider for PVT optimizations. |
redb.Postgres.Pro.Query
Classes
| ExpressionToSqlCompiler | Compiles C# Expression to SQL WHERE condition for PVT. |
| ProQueryProvider | ProQueryProvider: PVT-based Batch Aggregation. |
| ProSqlBuilder | PostgreSQL-specific SQL builder for Pro version. |
| ProTreeQueryProvider | ProTreeQueryProvider - Aggregation for trees (partial). |
| PvtSqlGenerator | PVT SQL generator for WHERE conditions. |
| TreeQuerySqlResult | Result of SQL generation for Tree Query |
redb.Postgres.Pro.Query.PvtSqlGenerator
Classes
| PvtSqlGenerator.PvtCteResult | Result of GeneratePvtCte - contains CTE SQL and join info. |
redb.Postgres.Pro.Services
Classes
| ProRedbService | Pro version of RedbService - replaces _queryProvider with ProQueryableProvider. |
redb.Postgres.Pro.Sql
Classes
| ProPostgreSqlDialect | Pro version of PostgreSQL dialect. |
redb.Postgres.Providers
Classes
| LazyPropsLoader | OpenSource implementation of lazy Props loading for PostgreSQL. |
| PostgresListProvider | PostgreSQL implementation of IListProvider. |
| PostgresObjectStorageProvider | PostgreSQL implementation of ObjectStorageProvider. |
| PostgresPermissionProvider | PostgreSQL implementation of permission provider. |
| PostgresQueryableProvider | PostgreSQL implementation of IQueryableProvider. |
| PostgresRoleProvider | PostgreSQL implementation of role provider. |
| PostgresSchemeSyncProvider | PostgreSQL implementation of scheme synchronization provider. |
| PostgresTreeProvider | PostgreSQL implementation of tree provider. |
| PostgresUserProvider | PostgreSQL implementation of user provider. |
| PostgresValidationProvider | PostgreSQL implementation of validation provider. |
redb.Postgres.Query
Classes
| PostgresQueryProvider | PostgreSQL query provider implementation. |
| PostgresTreeQueryable<TProps> | PostgreSQL tree queryable implementation. |
| PostgresTreeQueryProvider | PostgreSQL tree query provider implementation. |
redb.Postgres.Sql
Classes
| PostgreSqlDialect | PostgreSQL implementation of ISqlDialect. |
redb.Postgres.Utils
Classes
| ValuesTopologicalSort | Topological sorting of _values to maintain FK constraint on _array_parent_id. |
redb.PropsEditor.Attributes
Classes
| PropsDisplayAttribute | Specifies display settings for a property in PropsEditor. |
| PropsGroupAttribute | Groups properties together in a collapsible section. |
| PropsHiddenAttribute | Hides the property from the editor. |
| PropsReadOnlyAttribute | Marks the property as read-only in the editor. |
| PropsTextAreaAttribute | Renders the property as a multiline text area. |
redb.PropsEditor.Extensions
Classes
| ServiceCollectionExtensions | Extension methods for registering redb.PropsEditor services. |
redb.PropsEditor.Services
Classes
| PropertyMetadata | Metadata about a single property for UI rendering. |
| PropsMetadataService | Provides metadata about Props classes for dynamic UI generation. |
Enums
| EditorType | Type of editor to render for a property. |