SharpCoreDB.Functional 2.1.0-RC.3

This is a prerelease version of SharpCoreDB.Functional.
dotnet add package SharpCoreDB.Functional --version 2.1.0-RC.3
                    
NuGet\Install-Package SharpCoreDB.Functional -Version 2.1.0-RC.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SharpCoreDB.Functional" Version="2.1.0-RC.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpCoreDB.Functional" Version="2.1.0-RC.3" />
                    
Directory.Packages.props
<PackageReference Include="SharpCoreDB.Functional" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SharpCoreDB.Functional --version 2.1.0-RC.3
                    
#r "nuget: SharpCoreDB.Functional, 2.1.0-RC.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SharpCoreDB.Functional@2.1.0-RC.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SharpCoreDB.Functional&version=2.1.0-RC.3&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SharpCoreDB.Functional&version=2.1.0-RC.3&prerelease
                    
Install as a Cake Tool

SharpCoreDB.Functional

Functional facade for SharpCoreDB.

Version: v1.9.5 Package: SharpCoreDB.Functional

Patch updates in v1.9.5

  • Parameterized query binding fixed (Issue #336): named-parameter binding is token-aware, so parameter names that are prefixes of others (e.g. @t vs @tid) no longer corrupt the SQL.
  • Server parameter pass-through fixed (Issue #337): request.Parameters are forwarded on gRPC, the binary (PostgreSQL) protocol and WebSocket.
  • ULID encoding is now standards-compliant: ULIDs follow the official Crockford Base32 spec and are interchangeable with Python/Java/Go implementations.
  • NuGet dependencies updated to their latest stable versions.
  • ✅ Aligned package metadata and version references to the synchronized 1.9.5 release line.
  • ✅ Release automation now publishes all packable SharpCoreDB packages in CI/CD.
  • Core types: Option<T>, Fin<T>, Seq<T>, and Unit
  • Functional query/command style extensions over Database and IDatabase
  • Works as base module for Dapper and EF Core functional adapters

Changes in v1.9.5

  • Functional package introduced and aligned to v1.9.5
  • Documentation aligned with modular adapter ecosystem
  • Maintains optional architecture with transitive dependency flow

Installation

dotnet add package SharpCoreDB.Functional --version 2.0.0.0
  • SharpCoreDB.Functional.Dapper
  • SharpCoreDB.Functional.EntityFrameworkCore

Documentation

  • docs/INDEX.md

MVP API

  • Database.Functional() / IDatabase.Functional() entry points
  • GetByIdAsync<T>(...) -> Task<Option<T>>
  • FindOneAsync<T>(...) -> Task<Option<T>>
  • QueryAsync<T>(...) -> Task<Seq<T>>
  • InsertAsync<T>(...) -> Task<Fin<Unit>>
  • UpdateAsync<T>(...) -> Task<Fin<Unit>>
  • DeleteAsync(...) -> Task<Fin<Unit>>
  • CountAsync(...) -> Task<long>

Functional SQL Syntax (v2.0.0.0)

The functional facade supports SQL extensions that map directly to Option<T> behavior.

Example

SELECT Id, Name, Email OPTIONALLY FROM Users
WHERE Email IS SOME;

Execute from C#

var fdb = database.Functional();

var users = await fdb.ExecuteFunctionalSqlAsync<UserDto>(
    "SELECT Id, Name, Email OPTIONALLY FROM Users WHERE Email IS SOME");

Supported keywords

  • OPTIONALLY FROM
  • IS SOME
  • IS NONE
  • MATCH SOME <column>
  • MATCH NONE <column>
  • UNWRAP <column> AS <alias> [DEFAULT '<value>']

Verification tests

dotnet test tests/SharpCoreDB.Functional.Tests --filter "FullyQualifiedName~FunctionalSqlSyntaxTests"

Source: tests/SharpCoreDB.Functional.Tests/FunctionalSqlSyntaxTests.cs

Chaining example

var dbf = database.Functional();

var result = await dbf
    .GetByIdAsync<User>(Tables.Users, userId, cancellationToken: ct)
    .Map(opt => opt.Map(user => user with { LastSeenUtc = DateTime.UtcNow }))
    .Map(opt => opt.ToFin(Errors.UserNotFound));

result.Match(
    Succ: _ => Console.WriteLine("updated"),
    Fail: err => Console.WriteLine(err.Message));



Product Compatible and additional computed target framework versions.
.NET net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on SharpCoreDB.Functional:

Package Downloads
SharpCoreDB.Data.Provider

Data provider layer for SharpCoreDB on .NET 10.

SharpCoreDB.Functional.EntityFrameworkCore

Entity Framework Core adapter for SharpCoreDB.Functional with zero-dependency Option/Fin APIs and fluent functional composition for .NET 10 and C# 14.

SharpCoreDB.Functional.Dapper

Dapper adapter for SharpCoreDB.Functional with zero-dependency Option/Fin APIs and fluent functional composition for .NET 10 and C# 14.

SharpCoreDB.Functional.Linq2DB

Production-ready linq2db adapter for SharpCoreDB.Functional. Zero-dependency Option/Fin/Seq APIs, compile-time LINQ safety, BulkCopy batching, full type mappings (ULID/GUID), and low-overhead queries. Perfect for AI/agentic and GraphRAG workloads on .NET 10 / C# 14.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.0-RC.3 31 9/17/2026
2.0.0.3 170 9/12/2026
2.0.0.2 320 9/4/2026
2.0.0.1 344 9/1/2026
2.0.0 147 9/1/2026
2.0.0-preview.3 95 8/30/2026
2.0.0-preview.2 78 8/30/2026
2.0.0-preview.1 75 8/29/2026
1.9.9 175 8/30/2026
1.9.8 179 8/29/2026
1.9.7 158 8/29/2026
1.9.6 183 8/28/2026
1.9.5 184 8/27/2026
1.9.4 187 8/22/2026
1.9.3 238 7/28/2026
1.9.2 244 6/7/2026
1.9.1 187 5/21/2026
1.9.0 170 5/20/2026
1.8.0 212 4/29/2026
1.7.2 206 4/28/2026
Loading failed

v2.1.0-RC.3 (2026-09-17): net11.0-only (C# 15 preview) release line - 2,897 tests green across 16 suites; the fixed-width inline capacity ships at 16 by default on both storage paths (batched multi-row INSERT measured +12 to +19 percent); the overflow arena writes a row's payloads in one append instead of one file open per value; and in-place UPDATE/DELETE with deferred index maintenance put the fixed-width fair-PK layout ahead of SQLite on UPDATE (0.8x) and DELETE (0.5x). Full details: https://github.com/MPCoreDeveloper/SharpCoreDB/blob/release/v2.1.0.0-RC.3/docs/CHANGELOG.md