Back to rankings

mikependon/RepoDB

C#

A hybrid ORM library for .NET.

ormorm-frameworkorm-libraryhybrid-ormsqlite-ormmysql-ormpostgresql-ormdotnetdotnet-corecsharpbulk-operationmapper
Star Growth
Stars
1.9k
Forks
133
Weekly Growth
Issues
147
5001k1.5k
Apr 2018Jan 2021Oct 2023Jul 2026
README

Build Version MsTeams

RepoDB — a Hybrid ORM for .NET

RepoDB is a fast, lightweight, and open-source .NET ORM that gives you the best of both worlds: the simplicity of a micro-ORM and the power of a full ORM — without the overhead.

Write raw SQL when you need full control. Use fluent methods when you want productivity. Switch between them freely, in the same codebase.

Packages and Build Status

Project Nuget Downloads Status
RepoDb Build
RepoDb.SqlServer Build
RepoDb.MySql Build
RepoDb.MySqlConnector Build
RepoDb.PostgreSql Build
RepoDb.Sqlite.Microsoft Build
RepoDb.SqlServer.BulkOperations Build
RepoDb.PostgreSql.BulkOperations Build
RepoDb.Telemetry.Core Build
RepoDb.Telemetry.Default Build

Why RepoDB?

Expand to learn more

Easy to Use — all operations are extension methods on IDbConnection. Open a connection and you're ready to go.

High Performance — compiled expressions are cached and reused. RepoDB understands your schema to generate the most efficient execution path ahead of time.

Memory Efficient — object properties, execution contexts, mappings, and SQL statements are extracted once and reused throughout the lifetime of your application.

Hybrid by Design — use fluent methods for everyday CRUD, drop down to raw SQL for complex queries, or mix both — all within the same connection.

Battle-Tested — backed by thousands of unit and integration tests, and used in production systems worldwide.

Always Free — Apache 2.0 licensed, forever open source.

Get Started

Choose your database and follow the quick-start guide:

Explore individual features in the documentation.

Supported Databases

Raw SQL execution methods work with any ADO.NET-compatible provider:

Fluent operations (Query, Insert, Merge, Delete, Update, and more) are supported for SQL Server, MySQL, PostgreSQL, and SQLite.

Type Coercion

RepoDB uses ADO.NET's native coercion by default, keeping type mismatches visible and explicit. To enable automatic conversion:

RepoDb.Converter.ConversionType = ConversionType.Automatic;

How RepoDB Compares

RepoDB sits between a micro-ORM and a full ORM. Each tool below makes different tradeoffs — pick the one that fits your project:

RepoDB Dapper Entity Framework
Abstraction level Hybrid — fluent CRUD + raw SQL Micro-ORM — raw SQL mapping Full ORM — LINQ, change tracking
Fluent CRUD API Yes (Insert, Query, Update, Delete, Merge, more) No — SQL per call Yes, via LINQ/DbSet
Raw SQL Yes, mixed freely with fluent calls Yes — its core model Yes, via FromSql
Change tracking None None Yes
Migrations None built-in None built-in Yes (EF Migrations)
Bulk operations Built-in, cross-provider Via extensions Via extensions/third-party
Insights / telemetry Built-in (RepoDb.Telemetry.Default) None built-in — manual or third-party (e.g. MiniProfiler) Built-in logging/interceptors; OTel via community packages
Performance Close to raw ADO.NET Close to raw ADO.NET Overhead from tracking/materialization
Best fit EF-like productivity without losing SQL control Thinnest possible SQL-to-object mapper Rich object graphs, LINQ, migrations

Dapper and Entity Framework are both excellent, mature tools — this reflects design tradeoffs, not a ranking.

Telemetry

RepoDB includes opt-in, drop-in telemetry via RepoDb.Telemetry.Default. Enable it once at startup and every operation (Insert, Query, Update, Delete, etc.) is captured and published to your insights collector automatically — no custom ITrace required.

It comes with great and simple dashboards visualization.

Integrating your code.

GlobalConfiguration
    .Setup(new GlobalConfigurationOptions { UseRegisteredGlobalTraces = true })
    .UseDefaultTelemetry(
        host: "https://your-collector-host",
        apiKey: "YOUR_API_KEY",
        applicationName: "MyApp",
        groupName: "Default");

It's intentionally lightweight rather than OTel-based, keeping RepoDB's thin, fast footprint intact. See the package README for configuration options, the full OTel rationale, and the roadmap.

Contributions

We welcome contributions of all kinds — code, docs, bug reports, and ideas.

Community

Resources

Contributors

Credits

Thanks to all contributors and to Scott Hanselman for featuring RepoDB.

Tools and projects that make RepoDB possible: GitHub, Microsoft Teams, Moq, NuGet, RawDataAccessBencher, Shields, Microsoft.Data.Sqlite, System.Data.SQLite.Core, MySql.Data, MySqlConnector, Npgsql.

License

Apache-2.0 — Copyright © 2018 Michael Camara Pendon

Related repositories
django/django

The Web framework for perfectionists with deadlines.

PythonPyPIBSD 3-Clause "New" or "Revised" Licensepythondjango
djangoproject.com
88.2k34.1k
prisma/prisma

Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

TypeScriptnpmApache License 2.0prismaorm
prisma.io
47.4k2.4k
go-gorm/gorm

The fantastic ORM library for Golang, aims to be developer friendly

GoGo ModulesMIT Licensegogolang
gorm.io
39.9k4.2k
typeorm/typeorm

TypeScript & JavaScript ORM for Node.js — supports PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, and more.

TypeScriptnpmMIT Licenseormtypescript
typeorm.io
36.6k6.6k
drizzle-team/drizzle-orm

ORM

TypeScriptnpmApache License 2.0typescriptorm
orm.drizzle.team
35.2k1.5k
sequelize/sequelize

Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB, DB2 and DB2 for IBM i.

TypeScriptnpmMIT Licensejavascriptsql
sequelize.org
30.4k4.3k
chinabugotech/hutool

🍬A set of tools that keep Java sweet.

JavaMavenMulan Permissive Software License, Version 2javahutool
hutool.cn
30.3k7.6k
dromara/hutool

🍬A set of tools that keep Java sweet.

JavaMavenjavahutool
hutool.cn
29.4k7.5k
Automattic/mongoose

MongoDB object modeling designed to work in an asynchronous environment.

JavaScriptnpmMIT Licensemongomongodb
mongoosejs.com
27.5k4k
sqlc-dev/sqlc

Generate type-safe code from SQL

GoGo ModulesMIT Licensegopostgresql
sqlc.dev
18.1k1.1k
baomidou/mybatis-plus

An powerful enhanced toolkit of MyBatis for simplify development

JavaMavenApache License 2.0mybatismybatis-plus
baomidou.com
17.4k4.4k
ent/ent

An entity framework for Go

GoGo ModulesApache License 2.0entorm
entgo.io
17.1k1k