SharpCoreDB.Functional.Linq2DB 1.9.9

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.9
                    
NuGet\Install-Package SharpCoreDB.Functional.Linq2DB -Version 1.9.9
                    
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.Linq2DB" Version="1.9.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpCoreDB.Functional.Linq2DB" Version="1.9.9" />
                    
Directory.Packages.props
<PackageReference Include="SharpCoreDB.Functional.Linq2DB" />
                    
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.Linq2DB --version 1.9.9
                    
#r "nuget: SharpCoreDB.Functional.Linq2DB, 1.9.9"
                    
#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.Linq2DB@1.9.9
                    
#: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.Linq2DB&version=1.9.9
                    
Install as a Cake Addin
#tool nuget:?package=SharpCoreDB.Functional.Linq2DB&version=1.9.9
                    
Install as a Cake Tool

SharpCoreDB.Functional.Linq2DB

linq2db adapter for SharpCoreDB.Functional.

Version: v1.9.5 (production-ready)
Package: SharpCoreDB.Functional.Linq2DB


Overview

SharpCoreDB.Functional.Linq2DB is the production-ready linq2db adapter for SharpCoreDB's functional stack. It delivers compile-time type safety, expressive LINQ, zero change-tracking overhead, and railway-oriented return types (Option<T>, Fin<T>, Seq<T>).

Perfect for:

  • ✅ High-throughput AI/agentic workflows and GraphRAG
  • ✅ Compile-time safe queries with full IntelliSense
  • ✅ Low memory/CPU overhead (no EF-style tracking)
  • ✅ Bulk operations via BulkCopyAsync
  • ✅ Native AOT and .NET 10/C# 14
  • ✅ Railway-oriented error handling (Fin<T>)

Installation

dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.5

Quick Start (Production)

1. Basic LINQ (raw linq2db)

using SharpCoreDB.Functional.Linq2DB;
using LinqToDB;

var conn = new SharpCoreDBDataConnection("Data Source=./app.scdb");

var users = await conn.GetTable<User>()
    .Where(u => u.IsActive)
    .OrderBy(u => u.Email)
    .ToListAsync();
var db = new FunctionalLinq2DbContext(conn);

// Option<T> for safe lookups
var user = await db.FindOneAsync<User>(u => u.Email == "test@example.com");

// Seq<T> for collections
var activeUsers = await db.QueryAsync<User>(u => u.IsActive);

// Fin<T> for mutations (railway-oriented)
var insertResult = await db.InsertBatchAsync(new[] { user1, user2 }); // uses BulkCopyAsync internally

insertResult.IfSucc(count => Console.WriteLine($"Inserted {count} rows"))
            .IfFail(err => Console.WriteLine($"Error: {err.Message}"));

Connection note: Use "Data Source=..." for full linq2db/SQLite compatibility. SharpCoreDB "Path=..." works via the core provider but may require the underlying ADO.NET path for DDL.


Key Production Features

  • BulkCopy support in InsertBatchAsync for high-speed ingestion (GraphRAG, analytics)
  • Full type mapping (ULID as string, GUID as compact string, DateTime ISO, bool→int for SQLite compat)
  • Transaction support with TransactionAsync<TResult>
  • DeleteWhereAsync, CountAsync, ExistsAsync, GetAllAsync
  • Seamless with SharpCoreDB.Functional (Prelude, Option, Fin, Seq, Error)
  • Works alongside SharpCoreDB.Functional.Dapper and EF Core functional wrapper
  • Full API in FunctionalLinq2DbContext.cs and Extensions.cs
  • Test coverage: tests/SharpCoreDB.Functional.Linq2DB.Tests/
  • See also: docs/FEATURE_MATRIX_v1.7.2.md, docs/functional/OPTIONALLY_SQL_OPTION_SUPPORT_v1.7.2.md, docs/graphrag/LINQ_API_GUIDE.md
  • 🔗 SharpCoreDB GitHub

License: MIT

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0-preview.3 35 8/30/2026
2.0.0-preview.2 38 8/30/2026
2.0.0-preview.1 33 8/29/2026
1.9.9 21 8/30/2026
1.9.8 39 8/29/2026
1.9.3 111 7/29/2026

v1.9.9: Fixes the parenthesized OR/AND WHERE regression (#348) — "(col = @p0 OR col = @p1)" and "a = 1 AND (b = 2 OR c = 3)" now evaluate correctly in single-file and directory mode (previously returned 0 rows); unrecognized WHERE predicates now fail closed instead of silently accepting every row; discriminating regression tests cover multi-value IN / VALUES / OR / parenthesized OR / AND+OR across the SQL and EF Core provider paths. Includes all v1.9.8 fixes (full-vacuum Native AOT safety, Brotli/GZip block compression, configurable single-file metadata region sizes, Unicode/large-blob regression coverage) and v1.9.7 fixes (the WHERE IN (...) regression for SQLite VALUES lists, tuple rows, multi-value parameters and OR-chained predicates; real ExecuteNonQuery affected-row counts; AES-256-GCM single-file encryption when DatabaseOptions.EncryptionKey is set).