RepoDb 1.17.0-alpha1
RepoDB — a production-ready data access platform for .NET applications.
RepoDb is the core package of RepoDB — the thin execution engine that runs directly against IDbConnection. It compiles, caches, and executes raw SQL and fluent CRUD operations with minimal overhead, without imposing a provider-specific dialect or data layer on top.
Write raw SQL when you need full control. Use fluent methods when you want productivity. Switch between them freely, in the same codebase.
Provider packages (SQL Server, PostgreSQL, MySQL, and more) build on top of this core to add provider-native behavior, such as bulk operations.
Important Pages
- GitHub Home — core library and source code.
- Website — full documentation, API reference, and blog.
Core Features
- Batch Operations
- Bulk Operations
- Caching
- Class Handlers
- Class Mapping
- Connection Persistency
- Dynamics
- Enumeration
- Expression Trees
- Hints
- Implicit Mapping
- Multiple Query
- Property Handlers
- Repositories
- Targeted Operations
- Telemetry
- Tracing
- Transaction
- Type Mapping
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.
License
Apache-2.0 — Copyright © 2018 Michael Camara Pendon
Installation
Install-Package RepoDB
Or visit the installation page for more options.
Get Started
All RepoDB operations are extension methods on IDbConnection — no repository classes or extra setup required.
Query
using (var connection = new SqlConnection(ConnectionString))
{
var customer = connection.ExecuteQuery<Customer>("SELECT * FROM [dbo].[Customer] WHERE (Id = @Id);", new { Id = 10045 }).FirstOrDefault();
}
Insert
var customer = new
{
FirstName = "John",
LastName = "Doe",
IsActive = true
};
using (var connection = new SqlConnection(ConnectionString))
{
var id = connection.ExecuteScalar<int>("INSERT INTO [dbo].[Customer](FirstName, LastName, IsActive) VALUES (@FirstName, @LastName, @IsActive); SELECT SCOPE_IDENTITY();", customer);
}
Update
using (var connection = new SqlConnection(ConnectionString))
{
var customer = new
{
Id = 10045,
FirstName = "John",
LastName = "Doe"
};
var affectedRows = connection.ExecuteNonQuery("UPDATE [dbo].[Customer] SET FirstName = @FirstName, LastName = @LastName, LastUpdatedUtc = GETUTCDATE() WHERE (Id = @Id);", customer);
}
Delete
using (var connection = new SqlConnection(ConnectionString))
{
var deletedRows = connection.ExecuteNonQuery("DELETE FROM [dbo].[Customer] WHERE (Id = @Id)", new { Id = 10045 });
}
Stored Procedure
using (var connection = new SqlConnection(ConnectionString))
{
var customer = connection.ExecuteQuery<Customer>("[dbo].[sp_GetCustomer]", new { Id = 10045 }, commandType: CommandType.StoredProcedure).FirstOrDefault();
}
Or via inline SQL:
using (var connection = new SqlConnection(ConnectionString))
{
var customer = connection.ExecuteQuery<Customer>("EXEC [dbo].[sp_GetCustomer](@Id);", new { Id = 10045 }).FirstOrDefault();
}
Visit the get-started page for the full SQL Server guide.
Showing the top 20 packages that depend on RepoDb.
| Packages | Downloads |
|---|---|
|
RepoDb.MySqlConnector
A hybrid .NET ORM library for MySQL (using MySqlConnector).
|
2 |
|
RepoDb.MySqlConnector
A hybrid .NET ORM library for MySQL (using MySqlConnector).
|
1 |
|
RepoDb.MySql
A hybrid .NET ORM library for MySQL (using MySql.Data).
|
1 |
.NET 10.0
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Reflection.TypeExtensions (>= 4.7.0)
.NET 8.0
- System.Collections.Immutable (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
.NET 9.0
- System.Collections.Immutable (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
.NET Standard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- System.Collections.Immutable (>= 10.0.11)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Linq.Async (>= 7.0.1)
- System.Memory (>= 4.6.3)
- System.Reflection.Emit (>= 4.7.0)
- System.Reflection.Emit.Lightweight (>= 4.7.0)
- System.Reflection.TypeExtensions (>= 4.7.0)
- System.Text.RegularExpressions (>= 4.3.1)
| Version | Downloads | Last updated |
|---|---|---|
| 1.17.1 | 0 | 11/07/2026 |
| 1.17.1-alpha1 | 0 | 11/05/2026 |
| 1.17.0 | 0 | 10/23/2026 |
| 1.17.0-beta2 | 0 | 10/10/2026 |
| 1.17.0-beta1 | 0 | 10/08/2026 |
| 1.17.0-alpha3 | 1 | 11/08/2026 |
| 1.17.0-alpha2 | 0 | 09/18/2026 |
| 1.17.0-alpha1 | 1 | 11/08/2026 |
| 1.16.0 | 0 | 09/09/2026 |
| 1.16.0-beta4 | 0 | 09/04/2026 |
| 1.16.0-beta3 | 0 | 08/27/2026 |
| 1.16.0-beta2 | 0 | 08/23/2026 |
| 1.16.0-beta1 | 0 | 08/15/2026 |
| 1.16.0-alpha5 | 0 | 08/15/2026 |
| 1.16.0-alpha4 | 0 | 08/10/2026 |
| 1.16.0-alpha3 | 0 | 08/08/2026 |
| 1.16.0-alpha2 | 0 | 08/05/2026 |
| 1.16.0-alpha1 | 0 | 07/26/2026 |
| 1.15.1 | 0 | 07/23/2026 |
| 1.15.0 | 0 | 07/18/2026 |
| 1.15.0-telemetry | 0 | 07/18/2026 |
| 1.15.0-alpha1 | 0 | 07/18/2026 |
| 1.14.2 | 0 | 07/03/2026 |
| 1.14.2-beta1 | 0 | 07/02/2026 |
| 1.14.1 | 0 | 07/01/2026 |
| 1.14.0 | 0 | 06/28/2026 |
| 1.14.0-alpha1 | 0 | 06/28/2026 |
| 1.13.2-alpha1 | 0 | 02/26/2024 |
| 1.13.1 | 0 | 03/16/2023 |
| 1.13.0 | 0 | 11/02/2022 |
| 1.13.0-alpha3 | 0 | 10/24/2022 |
| 1.13.0-alpha2 | 0 | 10/06/2022 |
| 1.13.0-alpha1 | 0 | 09/17/2022 |
| 1.12.10 | 0 | 02/18/2022 |
| 1.12.10-beta4 | 0 | 12/12/2021 |
| 1.12.10-beta3 | 0 | 12/08/2021 |
| 1.12.10-beta2 | 0 | 12/07/2021 |
| 1.12.10-beta1 | 0 | 10/22/2021 |
| 1.12.9 | 0 | 09/27/2021 |
| 1.12.8 | 0 | 09/23/2021 |
| 1.12.8-beta5 | 0 | 09/17/2021 |
| 1.12.8-beta4 | 0 | 03/12/2021 |
| 1.12.8-beta3 | 0 | 02/23/2021 |
| 1.12.8-beta2 | 0 | 02/19/2021 |
| 1.12.8-beta1 | 0 | 02/12/2021 |
| 1.12.7 | 0 | 02/06/2021 |
| 1.12.6 | 0 | 01/13/2021 |
| 1.12.5 | 0 | 12/30/2020 |
| 1.12.5-beta6 | 0 | 12/17/2020 |
| 1.12.5-beta5 | 0 | 12/17/2020 |
| 1.12.5-beta4 | 0 | 12/03/2020 |
| 1.12.5-beta3 | 0 | 11/22/2020 |
| 1.12.5-beta2 | 0 | 10/30/2020 |
| 1.12.5-beta1 | 0 | 10/28/2020 |
| 1.12.4 | 0 | 10/03/2020 |
| 1.12.3 | 0 | 09/29/2020 |
| 1.12.2 | 0 | 09/28/2020 |
| 1.12.1 | 0 | 09/25/2020 |
| 1.12.0 | 0 | 09/24/2020 |
| 1.12.0-beta4 | 0 | 09/17/2020 |
| 1.12.0-beta3 | 0 | 09/06/2020 |
| 1.12.0-beta2 | 0 | 09/02/2020 |
| 1.12.0-beta1 | 0 | 08/28/2020 |
| 1.11.6 | 0 | 08/02/2020 |
| 1.11.5 | 0 | 07/20/2020 |
| 1.11.4 | 0 | 07/11/2020 |
| 1.11.4-beta3 | 0 | 07/08/2020 |
| 1.11.4-beta2 | 0 | 06/21/2020 |
| 1.11.4-beta1 | 0 | 06/20/2020 |
| 1.11.3 | 0 | 06/06/2020 |
| 1.11.2 | 0 | 05/23/2020 |
| 1.11.1 | 0 | 05/21/2020 |
| 1.11.1-beta3 | 0 | 05/21/2020 |
| 1.11.1-beta2 | 0 | 05/18/2020 |
| 1.11.1-beta1 | 0 | 05/15/2020 |
| 1.11.0 | 0 | 05/10/2020 |
| 1.11.0-beta4 | 0 | 04/18/2020 |
| 1.11.0-beta3 | 0 | 04/13/2020 |
| 1.11.0-beta2 | 0 | 04/13/2020 |
| 1.11.0-beta1 | 0 | 04/12/2020 |
| 1.11.0-alpha1 | 0 | 04/11/2020 |
| 1.10.11 | 0 | 04/08/2020 |
| 1.10.11-beta3 | 0 | 03/28/2020 |
| 1.10.11-beta2 | 0 | 03/26/2020 |
| 1.10.11-beta1 | 0 | 03/24/2020 |
| 1.10.11-alpha1 | 0 | 04/11/2020 |
| 1.10.10 | 0 | 03/01/2020 |
| 1.10.10-beta1 | 0 | 02/24/2020 |
| 1.10.9 | 0 | 02/16/2020 |
| 1.10.8 | 0 | 02/12/2020 |
| 1.10.7 | 0 | 02/09/2020 |
| 1.10.6 | 0 | 02/06/2020 |
| 1.10.5 | 0 | 02/01/2020 |
| 1.10.4 | 0 | 01/19/2020 |
| 1.10.4-beta2 | 0 | 01/18/2020 |
| 1.10.4-beta1 | 0 | 01/04/2020 |
| 1.10.3 | 0 | 12/21/2019 |
| 1.10.2 | 0 | 12/18/2019 |
| 1.10.2-alpha2 | 0 | 12/18/2019 |
| 1.10.2-alpha1 | 0 | 12/17/2019 |
| 1.10.1 | 0 | 11/30/2019 |
| 1.10.0 | 0 | 11/15/2019 |
| 1.9.11 | 0 | 10/03/2019 |
| 1.9.10 | 0 | 10/01/2019 |
| 1.9.9 | 0 | 09/29/2019 |
| 1.9.9-beta5 | 0 | 09/26/2019 |
| 1.9.9-beta4 | 0 | 09/23/2019 |
| 1.9.9-beta3 | 0 | 09/22/2019 |
| 1.9.9-beta2 | 0 | 09/19/2019 |
| 1.9.9-beta1 | 0 | 09/18/2019 |
| 1.9.8 | 0 | 06/23/2019 |
| 1.9.8-beta4 | 0 | 06/19/2019 |
| 1.9.8-beta3 | 0 | 06/18/2019 |
| 1.9.8-beta2 | 0 | 06/16/2019 |
| 1.9.8-beta1 | 0 | 06/10/2019 |
| 1.9.7 | 0 | 05/31/2019 |
| 1.9.6 | 0 | 05/26/2019 |
| 1.9.5 | 0 | 05/19/2019 |
| 1.9.4 | 0 | 05/19/2019 |
| 1.9.3 | 0 | 05/11/2019 |
| 1.9.2 | 0 | 04/28/2019 |
| 1.9.1 | 0 | 04/25/2019 |
| 1.9.0 | 0 | 04/23/2019 |
| 1.9.0-beta2 | 0 | 04/22/2019 |
| 1.9.0-beta1 | 0 | 04/13/2019 |
| 1.8.4 | 0 | 03/13/2019 |
| 1.8.3 | 0 | 03/13/2019 |
| 1.8.2 | 0 | 03/12/2019 |
| 1.8.1 | 0 | 03/09/2019 |
| 1.8.1-beta1 | 0 | 03/03/2019 |
| 1.8.0 | 0 | 02/25/2019 |
| 1.8.0-beta5 | 0 | 02/23/2019 |
| 1.8.0-beta4 | 0 | 02/22/2019 |
| 1.8.0-beta3 | 0 | 02/16/2019 |
| 1.8.0-beta2 | 0 | 02/13/2019 |
| 1.8.0-beta1 | 0 | 02/10/2019 |
| 1.7.0 | 0 | 11/27/2018 |
| 1.7.0-beta5 | 0 | 11/25/2018 |
| 1.7.0-beta4 | 0 | 11/25/2018 |
| 1.7.0-beta2 | 0 | 11/19/2018 |
| 1.7.0-beta1 | 0 | 11/10/2018 |
| 1.6.4 | 0 | 09/09/2018 |
| 1.6.2 | 0 | 09/09/2018 |
| 1.6.0 | 0 | 09/09/2018 |
| 1.5.3 | 0 | 08/28/2018 |
| 1.5.2 | 0 | 08/26/2018 |
| 1.5.0 | 0 | 08/26/2018 |
| 1.3.5 | 0 | 08/13/2018 |
| 1.3.2-alpha1 | 0 | 02/26/2024 |
| 1.3.0 | 0 | 08/12/2018 |
| 1.2.0-beta5 | 0 | 07/11/2018 |
| 1.2.0-beta4 | 0 | 07/07/2018 |
| 1.2.0-beta3 | 0 | 07/05/2018 |
| 1.2.0-beta2 | 0 | 07/04/2018 |
| 1.2.0-beta1 | 0 | 07/03/2018 |
| 1.1.11 | 0 | 07/03/2018 |
| 1.1.10 | 0 | 07/01/2018 |
| 1.1.10-beta1 | 0 | 07/03/2018 |
| 1.1.9 | 0 | 06/30/2018 |
| 1.1.8 | 0 | 06/27/2018 |
| 1.1.7 | 0 | 06/26/2018 |
| 1.1.6 | 0 | 06/24/2018 |
| 1.1.5 | 0 | 06/21/2018 |
| 1.1.4 | 0 | 06/21/2018 |
| 1.1.3 | 0 | 06/19/2018 |
| 1.1.2 | 0 | 06/19/2018 |
| 1.1.1 | 0 | 06/17/2018 |
| 1.1.0 | 0 | 06/12/2018 |
| 1.0.20 | 0 | 06/03/2018 |
| 1.0.19 | 0 | 05/19/2018 |
| 1.0.18-beta-01 | 0 | 05/06/2018 |
| 1.0.17-alpha-03 | 0 | 05/03/2018 |
| 1.0.17-alpha-02 | 0 | 05/02/2018 |
| 1.0.16-alpha-01 | 0 | 05/01/2018 |
| 1.0.15 | 0 | 04/22/2018 |
| 1.0.14 | 0 | 04/18/2018 |
| 1.0.13 | 0 | 04/17/2018 |
| 1.0.12 | 0 | 04/16/2018 |
| 1.0.11 | 0 | 04/16/2018 |
| 1.0.10 | 0 | 04/15/2018 |
| 1.0.9 | 0 | 04/10/2018 |
| 1.0.8 | 0 | 04/09/2018 |
| 1.0.7 | 0 | 04/08/2018 |
| 1.0.6 | 0 | 04/08/2018 |
| 1.0.5 | 0 | 04/05/2018 |
| 1.0.4 | 0 | 04/03/2018 |
| 1.0.3 | 0 | 04/03/2018 |
| 1.0.2 | 0 | 04/02/2018 |
| 1.0.1 | 0 | 04/01/2018 |
| 1.0.0 | 0 | 04/01/2018 |