DbConnectionPlus

A lightweight .NET ORM and extension library for System.Data.Common.DbConnection. It adds type-safe, high-performance helpers — Query<T>, InsertEntity, UpdateEntities, temporary tables and more — as extension methods on DbConnection, with per-database dialect support supplied by pluggable adapters.

Start at the repository README for installation and a quick start. These pages are the full documentation.

Guides

Guide What it covers
Querying ExecuteNonQuery, ExecuteReader, ExecuteScalar, Exists, and every Query overload — entities, scalars, value tuples and untyped rows
Parameters and temporary tables Parameter(value) and TemporaryTable(values), and the per-database caveats
Entity mapping and CRUD Attributes and the fluent API, insert/update/delete, optimistic concurrency, enums
Configuration Configure, EnumSerializationMode, InterceptDbCommand
Custom database adapters Supporting a database that has no adapter package
Native AOT and trimming What works, which providers are AOT-ready, and what you will see in your own build

Reference

Page What it covers
API summary Every public entry point, one line each, linked to the generated reference
Performance The benchmark results, and how they were measured
Design decisions Why the library works the way it does

API reference

The generated reference for every package starts at DbConnectionExtensions — the entry point for nearly every operation.

The packages

Package Contents
DbConnectionPlus The core library. Everything else depends on it.
DbConnectionPlus.DatabaseAdapters.MySql MySQL dialect support.
DbConnectionPlus.DatabaseAdapters.Oracle Oracle dialect support.
DbConnectionPlus.DatabaseAdapters.PostgreSql PostgreSQL dialect support.
DbConnectionPlus.DatabaseAdapters.Sqlite SQLite dialect support.
DbConnectionPlus.DatabaseAdapters.SqlServer SQL Server dialect support.

Install the core package plus the adapter for your database, then register the adapter once at startup:

DbConnectionExtensions.Configure(configuration => configuration.UseSqlServer());

They are versioned and released together, so a given release's adapter always matches its core package.

Project