Link Search Menu Expand Document

Welcome to RepoDB

A hybrid ORM library for .NET.

Get started now View it on GitHub


We are glad and thankful for your interest in learning RepoDB. It is an open-source .NET ORM library that bridges the gaps of micro-ORMs and macro-ORMs (aka Full-ORMs). It helps you simplify the switch-over of when to use the BASIC and ADVANCE operations during the development.

Its name is a shortcut to Repository (a popular pattern when implementing Data Access Layers) + the word Database.

Diagram below shows the high-level difference of RepoDB from both the micro-ORM and macro-ORM.

Even the library is rich on features (i.e. Batch/Bulk, Cache, Repositories, etc), it is still on the space of micro-ORM.


Why use RepoDB?

The main goal is to improve the things and simplify your development experiences when working with data access technology in .NET ecosystem. We would like you to have an easy access to the underlying database capability while maintaining the good programming coding standards and practices.

If you are to use a full-fledged macro-ORM, you are most likely be abstracted by the framework itself. Though they are more richer in operations, but those operations are limiting you to touch and maximize the power of the underlying database being in-used.

On the other hand, if you are to use a bare-metal micro-ORM, there are tendencies that most of your implementation will be verbose and are all text-based (SQLs). Even though you have a lot control with this, but it is quite tedious and is not practical in most cases.

RepoDB mediates both the micro-ORMs and macro-ORMs. When using this library, your development experience is as simple as Dapper when opening a connection and is as simple as Entity Framework when calling the operations. It is the reason that makes this library the easiest-to-use ORM.

using (var connection = new SqlConnection(connectionString))
{
    var id = connection.Insert<Customer, int>(new Customer
    {
        Name = "John Doe",
        Address = "New York")
    });
}

You can use the library to work with SQL Server, SQLite, MySQL and PostgreSQL RDBMS data providers.

Important Attributes

Easy to Use - the operations were all implemented as extension methods of your IDbConnection object. For as long your connection is open, any operations can then be called against your database.

High Performant - it caches the already-generated compiled expressions for future reusabilities and executions. It understands your schema to create the most optimal compiled expression AOT.

Memory Efficient - it extracts and caches your object properties, execution contexts, object mappings and SQL statements. It is reusing them all throughout the process of transformations and executions.

Dynamic and Hybrid - it provides some advance features of the full-fledged ORMs. It significantly help the developers to simplify the experience when context-switching during the development.

Open-Source Software - it is an open-source software and will always be free. It is authored to further improve the .NET data access experiences and solutions, together with the collective ideas of the community.

High Quality - it is a high-quality micro-ORM supported by 10K+ real-life Unit and Integration Tests. It is highly tested and is used by various critical systems that are running in the Production environment.


Official Benchmark

RepoDB shows an impressive performance and memory-efficiency if being compared with other ORMs available in the .NET ecosystem.

It is the fastest and the most-efficient ORM in .NET space nowadays!

The benchmark statistics shown above is the result of the community-approved ORM bencher RawDataAccessBencher.

Please visit the benchmark section of our Github page to get more information.


Let us get started

Please click any of the link below to fast-track your learnings about this library.

Or, please visit our installation page for more information, otherwise, visit our docs page to simplify your navigation.