Skip to content
A hybrid ORM library for .NET.
C# TSQL
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Removal of support of dynamic query tree expression. Feb 10, 2019
Docs Updated the documentation for the Bulk Operations (BulkDelete, BulkIn… Feb 23, 2020
RepoDb.Core Added the correct error messages when the RepoDb.SqlServer is not ins… Feb 25, 2020
RepoDb.Docs Update RepoDb vs Dapper.md Feb 16, 2020
RepoDb.Extensions More updates on the BulkMerge, BulkInsert and BulkDelete Integration … Feb 28, 2020
RepoDb.Icons Updated the icons Apr 14, 2019
RepoDb.MySql README updates. Feb 25, 2020
RepoDb.Nuget Nuget Package v1.10.0. Nov 15, 2019
RepoDb.Pocs Fixes failing Integration/Unit Tests. Added SqlVariant, ParameterFiel… May 9, 2019
RepoDb.PostgreSql README updates. Feb 25, 2020
RepoDb.Raw Added the layers. Dec 28, 2019
RepoDb.SqLite README updates. Feb 25, 2020
RepoDb.SqlServer README updates. Feb 25, 2020
RepoDb Renamed the PropertyHandlerCache to PropertyHandlerInstanceCache. Jan 27, 2020
.gitattributes Add .gitignore and .gitattributes. Apr 5, 2018
.gitignore Add .gitignore and .gitattributes. Apr 5, 2018
CODE_OF_CONDUCT.md Added a COC file Apr 13, 2018
CONTRIBUTING.md Create CONTRIBUTING.md Jan 5, 2020
LICENSE.txt Updated the License Copyright Apr 7, 2019
README.md Added the BulkOperations as part of the Notice. Feb 28, 2020

README.md


SolutionBuilds Wiki CodeSize GitterChat Documentation License

Notice of the day

The out-of-the-box Bulk Operations for SQL Server (ie: BulkDelete, BulkInsert, BulkMerge and BulkUpdate) will soon to be available via RepoDb.

RepoDb - a hybrid ORM Library for .NET.

RepoDb is an open-source .NET ORM that bridge the gaps between micro-ORMs and macro-ORMs. It helps the developer to simplify the switch-over of when to use the “BASIC” and “ADVANCE” operations during the development.

RepoDb is the best alternative ORM to both Dapper and EntityFramework.

Why use RepoDb as your ORM?
  • Usabilities and Benefits

    • The installation is easy and fast! It can then be used right-away.
    • The layer like DbContext is eliminated, those make the developers speed-up the usability.
    • The calls to Fluent and Raw-SQL method is just a dot away.
    • The implementation of Repository becoming more simpler by leveraging the built-in repositories.
    • The support to dynamics is rich; can work without the models.
    • The processes to handle the large datasets is very-simple with Batch and Bulk operations.
    • The round-trips to the database is being minimized with 2nd-Layer cache.
    • The transmission of the data from different RDBMS DB Providers only take few lines of codes.
  • Features and Capabilities

    • The 2nd-layer cache has been introduced; can be customized.
    • The tracing has been introduced; can be customized.
    • The support to dynamics is rich.
    • The batch-operations were introduced; being executed through packed-statements and is ACID.
    • The bulk-operations were introduced and is leveraging the ADO.NET implementations.
    • The usage of expression is present in most operations.
    • The statement builder can be customized. The developers can override the default implementation.
    • The repositories were introduced; can be leveraged for actual implementation.
    • The hints were introduced to optimize the help query analyzers.
    • The asynchronous operations are present in all operations.
    • The equivalent table-based operations are present for most operations.
  • Important Stories to Read

It is easy-to-use

RepoDb operations were implemented as extended methods of IDbConnection object. As long as the database connection is open, the developers can do all the activities towards the database.

It is high-performant

RepoDb has its own compiler and pre-caches the already-generated compiled-ILs and compiled-Expressions for future reusabilities.

It is efficient

RepoDb extracts and caches the object properties, mappings and SQL statements and reusing them throughout the process of transformations and executions. It helps eliminate the creation of unnecessary objects that leads to a low memory consumption.

Community

RepoDb is rapidly expanding its capabilities and features to become the main-stream hybrid-ORM for .NET. Though it is not a macro-ORM, it really requires significant amount of time and effort to maintain.

It is always open for community contributions, so please help us build and realize the solution.

Engagements

We would like to build a healthy and active community that would help fellow .NET developers build the knowledge-base when it comes to database accessibility. Please get in touch with us via:

Contributions

To contribute, please open the issues tab and filter the list of items with for-grabs label. Otherwise, please create a new issue for us to look-at and discuss.

Your biggest contribution is to utilize and share this solution to other developers. You can:

  • Blog it
  • Discuss it
  • Document it
  • Share it
  • Use it

We are really thanking you for that!

Contribution hints

Active code-lines

The pull-requests must be done on the following code-lines (RepoDb.Core, RepoDb.SqlServer, RepoDb.SqLite, RepoDb.MySql and RepoDb.PostgreSql).

Builds and Tests Result

Project/Solution Build Version Downloads Unit Tests IntegrationTests
RepoDb.Core CoreBuild CoreVersion CoreDL CoreUnitTests CoreIntegrationTests
RepoDb.SqlServer CoreBuild CoreVersion CoreDL CoreUnitTests CoreIntegrationTests
RepoDb.SqLite SqLiteBuild SqLiteVersion SqLiteDL SqLiteUnitTests SqLiteIntegrationTests
RepoDb.MySql MySqlBuild MySqlVersion MySqlDL MySqlUnitTests MySqlIntegrationTests
RepoDb.PostgreSql PostgreSqlBuild PostgreSqlVersion PostgreSqlDL PostgreSqlUnitTests PostgreSqlIntegrationTests

Supported Databases

Practically, RepoDb has supported all RDBMS data-providers. Developers has the freedom to write their own SQL statements and execute it against the database through the Execute() methods mentioned below.

Fully supported databases for fluent-methods

RepoDb has “fluent” methods in which the SQL Statements are automatically being constructed as part of the execution context. These methods are the most common operations being used by most developers (please see the operations section). In this regards, RepoDb only fully supported the SQL Server, SQLite, MySQL and PostgreSQL RDBMS data providers.

Extensibility

RepoDb is a highly extensible to further support customizations. You can:

And many more extensibility possibilities.

Operations

Operation Normal Normal (Async) TableName TableName (Async) Packed Execution Data Providers
Average YES YES YES YES NO SUPPORTED
AverageAll YES YES YES YES NO SUPPORTED
BatchQuery YES YES YES YES NO SUPPORTED
BulkDelete YES YES YES YES NO SQLSVR
BulkInsert YES YES YES YES NO SQLSVR
BulkMerge YES YES YES YES NO SQLSVR
BulkUpdate YES YES YES YES NO SQLSVR
Count YES YES YES YES NO SUPPORTED
CountAll YES YES YES YES NO SUPPORTED
Delete YES YES YES YES NO SUPPORTED
DeleteAll YES YES YES YES NO SUPPORTED
ExecuteNonQuery YES YES NO NO NO ALL
ExecuteQuery YES YES NO NO NO ALL
ExecuteQueryMultiple YES YES NO NO NO ALL
ExecuteReader YES YES NO NO NO ALL
ExecuteScalar YES YES NO NO NO ALL
Exists YES YES YES YES NO SUPPORTED
Insert YES YES YES YES NO SUPPORTED
InsertAll YES YES YES YES YES SUPPORTED
Max YES YES YES YES NO SUPPORTED
MaxAll YES YES YES YES NO SUPPORTED
Merge YES YES YES YES NO SUPPORTED
MergeAll YES YES YES YES YES SUPPORTED
Min YES YES YES YES NO SUPPORTED
MinAll YES YES YES YES NO SUPPORTED
Query YES YES YES YES NO SUPPORTED
QueryAll YES YES YES YES NO SUPPORTED
QueryMultiple YES YES NO NO YES SUPPORTED
Sum YES YES YES YES NO SUPPORTED
SumAll YES YES YES YES NO SUPPORTED
Truncate YES YES YES YES NO SUPPORTED
Update YES YES YES YES NO SUPPORTED
UpdateAll YES YES YES YES YES SUPPORTED

To learn more about these operations, please visit our reference implementations page.

Benchmark

The benchmark result to be shown on this page will always be referring to the community-approved ORM bencher tool (the RawDataAccessBencher tool).

Results below is the actual recent official execution result.

This section will always be updated with the latest official result.

Credits

License

Apache-2.0 - Copyright © 2019 - Michael Camara Pendon

You can’t perform that action at this time.