Open.Database.Extensions.Core
11.0.0-rc.1
See the version list below for details.
dotnet add package Open.Database.Extensions.Core --version 11.0.0-rc.1
NuGet\Install-Package Open.Database.Extensions.Core -Version 11.0.0-rc.1
<PackageReference Include="Open.Database.Extensions.Core" Version="11.0.0-rc.1" />
<PackageVersion Include="Open.Database.Extensions.Core" Version="11.0.0-rc.1" />
<PackageReference Include="Open.Database.Extensions.Core" />
paket add Open.Database.Extensions.Core --version 11.0.0-rc.1
#r "nuget: Open.Database.Extensions.Core, 11.0.0-rc.1"
#:package Open.Database.Extensions.Core@11.0.0-rc.1
#addin nuget:?package=Open.Database.Extensions.Core&version=11.0.0-rc.1&prerelease
#tool nuget:?package=Open.Database.Extensions.Core&version=11.0.0-rc.1&prerelease
Open.Database.Extensions.Core
You write the SQL. This library writes the other twenty lines.
Core is the foundation of Open.Database.Extensions: ADO.NET extension methods with best-practice defaults, expressive commands that open, run and dispose their own connection, and Map<T>() to turn rows into objects. It has no database dependency of its own. Use it for any ADO.NET database; most applications need only this package.
dotnet add package Open.Database.Extensions.Core --prerelease
dotnet add package Microsoft.Data.Sqlite # your provider; SQLite is used below
using Microsoft.Data.Sqlite;
using Open.Database.Extensions;
public record Post(int Id, string Title);
// connectionString is yours, for example "Data Source=blog.db"; the query assumes a posts table (id, author, title, ...).
// Create the factory once per application. Use your provider's connection type.
var connectionFactory = new DbConnectionFactory<SqliteConnection>(() => new SqliteConnection(connectionString));
int author = 42;
// The command opens a connection when the terminal runs and disposes it afterwards.
Post[] posts = await connectionFactory
.Command("select * from posts where author = @author order by id")
.AddParam(author)
.Map<Post>()
.ToArrayAsync();
AddParam(author) names the parameter author after the variable; AddParam("author", 42) names it yourself. Already have a connection? Start from it instead: connection.Command("..."). You own the connection; the command opens it only if it is closed and closes only what it opened.
Where to go next
- Getting started
- Expressive commands: parameters, stored procedures, timeouts, terminals
- Mapping rows to objects: the matching rules,
RowMap<T>, NULL handling - Coming from Dapper: the same jobs side by side
- Performance
The packages
| Package | What it adds | Targets |
|---|---|---|
| Open.Database.Extensions.Core (this package) | The foundation, expressive commands and Map<T>(). Provider-agnostic: start here. |
netstandard2.0, netstandard2.1, net10.0 |
| Open.Database.Extensions.MSSqlClient | SqlConnectionFactory and stored procedures on Microsoft.Data.SqlClient. |
net472, net10.0 |
| Open.Database.Extensions.SqlClient | The same API on the older System.Data.SqlClient. Deprecated: use MSSqlClient. |
netstandard2.0, netstandard2.1, net10.0 |
| Open.Database.Extensions.Channel | Rows into System.Threading.Channels. |
netstandard2.0, netstandard2.1, net10.0 |
| Open.Database.Extensions.Dataflow | Rows into TPL Dataflow blocks. | netstandard2.0, netstandard2.1, net10.0 |
Every other package depends on Core, so installing one brings Core with it.
Documentation · API reference · Source and issues · MIT license
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.14)
- System.Collections.Immutable (>= 10.0.14)
- System.Linq.AsyncEnumerable (>= 10.0.14)
- System.Memory (>= 4.6.3)
- System.Threading.Channels (>= 10.0.14)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETStandard 2.1
- System.Collections.Immutable (>= 10.0.14)
- System.Linq.AsyncEnumerable (>= 10.0.14)
- System.Threading.Channels (>= 10.0.14)
-
net10.0
- No dependencies.
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Open.Database.Extensions.Core:
| Package | Downloads |
|---|---|
|
Open.Database.Extensions
Useful set of utilities and abstractions for simplifying modern data-access operations and ensuring DI compatibility. This is simply a meta-package that includes Open.Database.Extensions.Core. |
|
|
Open.Database.Extensions.Channel
Database extensions for pipelining data through channels. Includes Open.Database.Extensions.Core. |
|
|
Open.Database.Extensions.SqlClient
Useful set of utilities and abstractions for simplifying modern SQL Client data-access operations and ensuring DI compatibility. |
|
|
Open.Database.Extensions.Dataflow
Useful set of utilities and abstractions for simplifying modern data-access operations with Dataflow and ensuring DI compatibility. |
|
|
Open.Database.Extensions.MSSqlClient
Useful set of utilities and abstractions for simplifying modern SQL Client data-access operations and ensuring DI compatibility. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 11.0.0-rc.3 | 0 | 11/9/2026 |
| 11.0.0-rc.2 | 35 | 11/9/2026 |
| 11.0.0-rc.1 | 44 | 11/8/2026 |
| 11.0.0-preview06 | 40 | 11/8/2026 |
| 11.0.0-preview05 | 52 | 11/8/2026 |
| 11.0.0-preview04 | 54 | 11/6/2026 |
| 11.0.0-preview03 | 45 | 11/6/2026 |
| 11.0.0-preview02 | 52 | 11/6/2026 |
| 11.0.0-preview01 | 58 | 11/5/2026 |
| 10.3.0 | 135 | 11/5/2026 |
| 10.2.0 | 8,985 | 8/14/2026 |
| 10.1.0 | 577 | 8/13/2026 |
| 10.0.1 | 183 | 8/12/2026 |
| 10.0.0 | 238 | 8/12/2026 |
| 9.0.3 | 5,149 | 3/17/2025 |
| 9.0.3-debug | 348 | 3/18/2025 |
| 9.0.2 | 445 | 3/17/2025 |
| 9.0.2-debug | 331 | 3/17/2025 |
| 9.0.1 | 861 | 3/17/2025 |
| 9.0.1-debug | 445 | 3/17/2025 |