CSharpDB.Client 1.7.0

Prefix Reserved
dotnet add package CSharpDB.Client --version 1.7.0
                    
NuGet\Install-Package CSharpDB.Client -Version 1.7.0
                    
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="CSharpDB.Client" Version="1.7.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CSharpDB.Client" Version="1.7.0" />
                    
Directory.Packages.props
<PackageReference Include="CSharpDB.Client" />
                    
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 CSharpDB.Client --version 1.7.0
                    
#r "nuget: CSharpDB.Client, 1.7.0"
                    
#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 CSharpDB.Client@1.7.0
                    
#: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=CSharpDB.Client&version=1.7.0
                    
Install as a Cake Addin
#tool nuget:?package=CSharpDB.Client&version=1.7.0
                    
Install as a Cake Tool

CSharpDB.Client

CSharpDB.Client is the authoritative database API for CSharpDB.

It owns the public client contract used to talk to a database, while transport and lower-level implementation details stay behind that boundary.

Current Direction

  • CSharpDB.Client is now the real implementation layer for database access.
  • CSharpDB.Service is a compatibility facade over the client while the repo retires direct service usage.
  • The current transport implementation is direct/local.
  • Http, Grpc, Tcp, and NamedPipes are part of the public client transport model, but only Direct is implemented today.

Current Transport Model

Create the client with CSharpDbClientOptions:

var client = CSharpDbClient.Create(new CSharpDbClientOptions
{
    Transport = CSharpDbTransport.Direct,
    DataSource = "csharpdb.db"
});

The transport can be selected explicitly with Transport. If it is omitted, the client infers it from Endpoint and otherwise defaults to direct.

Direct resolution currently accepts:

  • Endpoint as a file path
  • Endpoint as file://...
  • DataSource
  • ConnectionString containing Data Source=...

Resolution rules:

  • direct is the default when transport cannot be inferred from a network endpoint
  • supplied direct inputs must resolve to the same target
  • http:// and https:// infer Http unless Transport = CSharpDbTransport.Grpc is set explicitly
  • tcp://, pipe://, and npipe:// infer their corresponding future transport
  • Http, Grpc, Tcp, and NamedPipes validate their endpoint shape and then fail with a not-implemented error for now
  • HttpClient is reserved for future Http and Grpc transports

Example gRPC selection:

var client = CSharpDbClient.Create(new CSharpDbClientOptions
{
    Transport = CSharpDbTransport.Grpc,
    Endpoint = "https://localhost:5001"
});

This currently fails with a transport-not-implemented error because the repo does not yet expose a gRPC server transport.

Supported Surface

The current ICSharpDbClient includes:

  • database info and data source metadata
  • tables, schemas, row counts, browse, and primary-key lookup
  • row insert, update, and delete
  • table and column DDL
  • indexes, views, and triggers
  • saved queries
  • procedures and procedure execution
  • SQL execution with multi-statement splitting
  • client-managed transaction sessions
  • document collections
  • checkpoint
  • storage diagnostics

Implementation Notes

  • The direct client depends on CSharpDB.Engine, CSharpDB.Sql, and CSharpDB.Storage.Diagnostics.
  • CSharpDB.Client does not reference CSharpDB.Data.
  • Schema, data, procedure, and saved-query operations all run through direct engine access.
  • Collection access and client-managed transaction sessions use direct engine instances.
  • Internal tables such as __procedures, __saved_queries, and collection backing tables are hidden from normal table listing.

Dependency Injection

services.AddCSharpDbClient(new CSharpDbClientOptions
{
    DataSource = "csharpdb.db"
});

or

services.AddCSharpDbClient(sp => new CSharpDbClientOptions
{
    ConnectionString = "Data Source=csharpdb.db"
});

Design Rule

New database-facing functionality should be added here first.

Host-specific concerns should not create a second authoritative API beside CSharpDB.Client.

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 (2)

Showing the top 2 NuGet packages that depend on CSharpDB.Client:

Package Downloads
CSharpDB.Service

Thread-safe service layer for hosting CSharpDB in ASP.NET Core, Blazor, or MCP server applications.

CSharpDB

All-in-one package for CSharpDB application development. Includes the unified client, engine, ADO.NET provider, service layer, and diagnostics.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.7.0 31 3/8/2026