redb.MSSql.Pro
4.7.0
Prefix Reserved
On SQL Server, the database module of this version reports the wrong version, so an application that starts without rights to change the schema fails at startup. Fixed in 4.7.1; upgrade to redb.MSSql.Pro 4.7.1.
See the version list below for details.
dotnet add package redb.MSSql.Pro --version 4.7.0
NuGet\Install-Package redb.MSSql.Pro -Version 4.7.0
<PackageReference Include="redb.MSSql.Pro" Version="4.7.0" />
<PackageVersion Include="redb.MSSql.Pro" Version="4.7.0" />
<PackageReference Include="redb.MSSql.Pro" />
paket add redb.MSSql.Pro --version 4.7.0
#r "nuget: redb.MSSql.Pro, 4.7.0"
#:package redb.MSSql.Pro@4.7.0
#addin nuget:?package=redb.MSSql.Pro&version=4.7.0
#tool nuget:?package=redb.MSSql.Pro&version=4.7.0
RedBase Pro
Data Platform for .NET — the Pro engine of RedBase: SQL built in C#, a query planner, parallel materialization.
RedBase Pro replaces the query engine of the open-source RedBase core. The API is
the same: a project moves from Free to Pro by changing the packages and AddRedb to AddRedbPro.
Contents: Free and Pro · Packages · Quick Start · New in 4.4 · Supported Databases · Documentation · License
Free and Pro
Both editions take the same LINQ API: filters, nested fields, arrays and dictionaries, arithmetic, Sql.Function<T>(),
aggregation, GroupBy, window functions, trees, lists, users and permissions. They differ in how a query runs.
| Free | Pro | |
|---|---|---|
| Query engine | SQL functions of the module installed in the database (PL/pgSQL, T-SQL, a native loadable extension on SQLite) | SQL built in C# by the provider and sent as one statement |
| Materialization of Props | sequential | parallel |
Query planner (EnablePvtPrefilter) |
no | yes, on by default: the streams form reads a page, a count or an aggregate without pivoting every object of the scheme |
PropsSaveStrategy.ChangeTracking |
no (DeleteInsert only) |
yes: a save writes only the values that changed |
| Data migrations of Props classes | no | IRedbMigration<T>, MigrateAsync, AddRedbMigrations() |
Distinct() |
by object | one object per Props hash |
| SQLite | needs the native extension | pure C#: Blazor WebAssembly and mobile (MAUI) |
Free: LINQ → SQL module in the database → rows as JSON → Props
Pro: LINQ → SQL built in C# → rows → Props, materialized in parallel
Packages
dotnet add package redb.Postgres.Pro # or redb.MSSql.Pro, redb.SQLite.Pro
Each provider package brings redb.Core.Pro as a transitive dependency.
Quick Start
using redb.Core;
using redb.Core.Models.Configuration;
using redb.Core.Pro.Extensions; // AddRedbPro
using redb.Postgres.Pro.Extensions; // UsePostgres; or redb.MSSql.Pro.Extensions, redb.SQLite.Pro.Extensions
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRedbPro(options => options
.UsePostgres("Host=localhost;Database=mydb;Username=postgres;Password=pass")
// .UseMsSql("Server=localhost;Database=mydb;User Id=sa;Password=pass;TrustServerCertificate=true")
// .UseSqlite("Data Source=app.db")
.Configure(c =>
{
c.PropsSaveStrategy = PropsSaveStrategy.ChangeTracking;
c.EnablePropsCache = true;
}));
var app = builder.Build();
var redb = app.Services.GetRequiredService<IRedbService>();
await redb.InitializeAsync();
var results = await redb.Query<EmployeeProps>()
.Where(e => e.Salary > 75000m)
.Take(100)
.ToListAsync();
// Window functions — from E132_WindowRowNumber.cs
var ranked = await redb.Query<EmployeeProps>()
.WithWindow(w => w
.PartitionBy(x => x.Department)
.OrderByDesc(x => x.Salary))
.SelectAsync(x => new
{
Name = x.Props.FirstName,
Department = x.Props.Department,
Salary = x.Props.Salary,
Rank = Win.RowNumber()
});
New in 4.4
Pro query engine:
- A window with
Take,SkipandOrderByreturns the page; the window is computed over the whole filtered set on the fields it needs, and the other selected fields are read only for the rows returned. The same holds over a tree (TreeQuery(...).Take(...).WithWindow(...)), andWin.Ntile(n)over a tree usesn. AnyAsyncover a tree stops at the first matching node.DistinctByover a tree is faster on SQL Server and SQLite;DistinctBykeeps the ordering of the query, andCountAsyncafterDistinctBycounts the keys.
Both editions (core):
- Schema work at start-up and scheme synchronization run under a schema lock, so nodes sharing one database start
together (
SchemaLockTimeout). IRedbService.SchemaProblemsandCheckSchemaAsync()report problems of the schema that need a person, for a health check.- The tree services read a subtree or a chain of ancestors in one statement; several tree filters in one query all apply.
The full list is in CHANGELOG.md; what to check when upgrading is in UPGRADING.md.
Free — no license key
All Pro features work out of the box — no license key required (starting from version 3.3.0). Install the Pro packages and use them, in development and in production alike. Pro is proprietary (closed-source) software, distributed free of charge.
Supported Databases
| Database | Version | Package |
|---|---|---|
| PostgreSQL | 14+ | redb.Postgres.Pro |
| SQL Server | 2019+ | redb.MSSql.Pro |
| SQLite | 3.44+ | redb.SQLite.Pro — pure C#, runs in Blazor WebAssembly & mobile (MAUI) |
Target frameworks: .NET 8.0 (LTS), .NET 9.0, .NET 10.0.
Documentation
| Resource | Link |
|---|---|
| Website & Docs | redbase.app |
| Architecture (deep dive) | redbase.app/architecture |
| RedBase (Free edition, full API) | README.md |
| Upgrading | UPGRADING.md |
| Changelog | CHANGELOG.md |
License
RedBase Pro is proprietary software (closed-source), distributed free of charge — no license key required starting
from version 3.3.0. The license terms (LICENSE-PRO.txt) ship in every Pro package.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BCrypt.Net-Next (>= 4.2.1)
- Microsoft.Data.SqlClient (>= 7.1.1)
- Microsoft.Extensions.Caching.Memory (>= 10.0.13)
- Microsoft.Extensions.Configuration (>= 10.0.13)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.13)
- Microsoft.Extensions.DependencyInjection (>= 10.0.13)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Console (>= 10.0.13)
- Microsoft.Extensions.Options (>= 10.0.13)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.13)
- Microsoft.IdentityModel.Abstractions (>= 8.23.0)
- Microsoft.IdentityModel.Logging (>= 8.23.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 8.23.0)
- Microsoft.IdentityModel.Tokens (>= 8.23.0)
- redb.Core (>= 4.7.0)
- redb.Core.Pro (>= 4.7.0)
- redb.MSSql (>= 4.7.0)
- System.IdentityModel.Tokens.Jwt (>= 8.23.0)
- System.Security.Cryptography.Pkcs (>= 10.0.13)
-
net8.0
- BCrypt.Net-Next (>= 4.2.1)
- Microsoft.Data.SqlClient (>= 7.1.1)
- Microsoft.Extensions.Caching.Memory (>= 10.0.13)
- Microsoft.Extensions.Configuration (>= 10.0.13)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.13)
- Microsoft.Extensions.DependencyInjection (>= 10.0.13)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Console (>= 10.0.13)
- Microsoft.Extensions.Options (>= 10.0.13)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.13)
- Microsoft.IdentityModel.Abstractions (>= 8.23.0)
- Microsoft.IdentityModel.Logging (>= 8.23.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 8.23.0)
- Microsoft.IdentityModel.Tokens (>= 8.23.0)
- redb.Core (>= 4.7.0)
- redb.Core.Pro (>= 4.7.0)
- redb.MSSql (>= 4.7.0)
- System.IdentityModel.Tokens.Jwt (>= 8.23.0)
- System.Security.Cryptography.Pkcs (>= 10.0.13)
-
net9.0
- BCrypt.Net-Next (>= 4.2.1)
- Microsoft.Data.SqlClient (>= 7.1.1)
- Microsoft.Extensions.Caching.Memory (>= 10.0.13)
- Microsoft.Extensions.Configuration (>= 10.0.13)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.13)
- Microsoft.Extensions.DependencyInjection (>= 10.0.13)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Logging.Console (>= 10.0.13)
- Microsoft.Extensions.Options (>= 10.0.13)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.13)
- Microsoft.IdentityModel.Abstractions (>= 8.23.0)
- Microsoft.IdentityModel.Logging (>= 8.23.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 8.23.0)
- Microsoft.IdentityModel.Tokens (>= 8.23.0)
- redb.Core (>= 4.7.0)
- redb.Core.Pro (>= 4.7.0)
- redb.MSSql (>= 4.7.0)
- System.IdentityModel.Tokens.Jwt (>= 8.23.0)
- System.Security.Cryptography.Pkcs (>= 10.0.13)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on redb.MSSql.Pro:
| Package | Downloads |
|---|---|
|
redb.Tsak.Core
Kernel of redb.Tsak — runtime container for redb.Route contexts. Provides hot-reload module loading, REST management API, scheduler, monitoring, security and pluggable cluster bootstrap. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 4.7.1 | 44 | 11/11/2026 | |
| 4.7.0 | 118 | 11/7/2026 | |
| 4.6.2 | 114 | 11/5/2026 | |
| 4.6.1 | 136 | 11/4/2026 | |
| 4.6.0 | 134 | 11/3/2026 | |
| 4.5.1 | 156 | 10/30/2026 | |
| 4.5.0 | 138 | 10/29/2026 | |
| 4.4.2 | 156 | 10/23/2026 | |
| 4.4.1 | 146 | 10/21/2026 | |
| 4.3.0 | 170 | 10/14/2026 | |
| 4.2.2 | 180 | 10/5/2026 | |
| 4.2.0 | 170 | 9/30/2026 | |
| 4.1.1 | 187 | 9/24/2026 | |
| 4.1.0 | 171 | 9/21/2026 | |
| 4.0.1 | 175 | 9/18/2026 | |
| 4.0.0 | 208 | 9/11/2026 | |
| 3.7.2 | 225 | 8/26/2026 | |
| 3.7.1 | 197 | 8/26/2026 |