RepoDb.DuckDb
0.0.1-alpha1
Prefix Reserved
dotnet add package RepoDb.DuckDb --version 0.0.1-alpha1
NuGet\Install-Package RepoDb.DuckDb -Version 0.0.1-alpha1
<PackageReference Include="RepoDb.DuckDb" Version="0.0.1-alpha1" />
<PackageVersion Include="RepoDb.DuckDb" Version="0.0.1-alpha1" />
<PackageReference Include="RepoDb.DuckDb" />
paket add RepoDb.DuckDb --version 0.0.1-alpha1
#r "nuget: RepoDb.DuckDb, 0.0.1-alpha1"
#:package RepoDb.DuckDb@0.0.1-alpha1
#addin nuget:?package=RepoDb.DuckDb&version=0.0.1-alpha1&prerelease
#tool nuget:?package=RepoDb.DuckDb&version=0.0.1-alpha1&prerelease
<div align="center"> <a href="https://repodb.net/tutorial/get-started-duckdb/"><image src="DuckDB.png" style="width:256px;" /></a> <br/> <span style="font-size:28px;font-weight:bold;"><a href="https://repodb.net/tutorial/get-started-duckdb/"><strong>RepoDb.DuckDb</strong></a></span> <br/> <span style="font-size:16px;">A high-performance data productivity platform for DuckDB in .NET.</span> </div>
<br/>
RepoDb.DuckDb — RepoDB for DuckDB
The DuckDB provider for RepoDB — a fast, lightweight .NET ORM that lets you use raw SQL and fluent operations side by side on the same connection. Built on top of RepoDb and DuckDB.NET.
Important Pages
- GitHub Home — core library and source code.
- Website — full documentation, API reference, and blog.
Community
- GitHub Issues — bug reports and feature requests.
- Microsoft Teams — live Q&A.
- GitHub Discussions — ask questions and share ideas.
- X / Twitter — news and updates.
Dependencies
- DuckDB.NET.Data.Full — the ADO.NET data provider for DuckDB.
- RepoDb — the RepoDB core library.
License
Apache-2.0 — Copyright © 2026 Michael Camara Pendon
Installation
Install-Package RepoDb.DuckDb
Or visit the installation page for more options.
Get Started
Initialize the bootstrapper once at application startup:
GlobalConfiguration
.Setup()
.UseDuckDb();
Then use any RepoDB operation directly on your DuckDBConnection:
Query
using (var connection = new DuckDBConnection(ConnectionString))
{
var customer = connection.Query<Customer>(c => c.Id == 10045);
}
Insert
var customer = new Customer
{
FirstName = "John",
LastName = "Doe",
IsActive = true
};
using (var connection = new DuckDBConnection(ConnectionString))
{
var id = connection.Insert<Customer>(customer);
}
Update
using (var connection = new DuckDBConnection(ConnectionString))
{
var customer = connection.Query<Customer>(10045);
customer.FirstName = "John";
customer.LastUpdatedUtc = DateTime.UtcNow;
var affectedRows = connection.Update<Customer>(customer);
}
Delete
using (var connection = new DuckDBConnection(ConnectionString))
{
var customer = connection.Query<Customer>(10045);
var deletedCount = connection.Delete<Customer>(customer);
}
ExecuteQuery
using (var connection = new DuckDBConnection(ConnectionString))
{
var customer = connection.ExecuteQuery<Customer>("SELECT * FROM \"Customer\" WHERE (Id = $Id);", new { Id = 10045 }).FirstOrDefault();
}
ExecuteNonQuery
using (var connection = new DuckDBConnection(ConnectionString))
{
var affectedRows = connection.ExecuteNonQuery("UPDATE \"Customer\" SET FirstName = $FirstName WHERE (Id = $Id);", new { FirstName = "John", Id = 10045 });
}
ExecuteScalar
using (var connection = new DuckDBConnection(ConnectionString))
{
var count = connection.ExecuteScalar<int>("SELECT COUNT(*) FROM \"Customer\";");
}
Visit the get-started page for the full DuckDB guide.
Notes
DuckDB is an embedded, in-process analytical database engine — there is no server to connect to, and ConnectionString is either a file path (Data Source=my.db) or Data Source=:memory:. DuckDB also uses $name as its parameter placeholder sigil in raw SQL text (not @name), as reflected in the ExecuteQuery/ExecuteNonQuery examples above.
License
Apache-2.0 — Copyright © 2026 Michael Camara Pendon
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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 is compatible. 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. |
-
net10.0
- DuckDB.NET.Data.Full (>= 1.5.5)
- RepoDb (>= 1.17.0-alpha2)
-
net8.0
- DuckDB.NET.Data.Full (>= 1.5.5)
- RepoDb (>= 1.17.0-alpha2)
-
net9.0
- DuckDB.NET.Data.Full (>= 1.5.5)
- RepoDb (>= 1.17.0-alpha2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on RepoDb.DuckDb:
| Package | Downloads |
|---|---|
|
RepoDb.DuckDb.BulkOperations
An extension library that contains the official Bulk Operations of RepoDB for DuckDB. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.1-alpha1 | 56 | 9/23/2026 |