All Projects → zzzprojects → Dapper Plus

zzzprojects / Dapper Plus

Licence: other
Dapper Plus - High-Efficient Bulk Actions (Insert, Update, Delete, and Merge) for .NET

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Dapper Plus

Kuery
Strongly typed SQL in Kotlin
Stars: ✭ 199 (-24.91%)
Mutual labels:  sql, orm
Quickperf
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
Stars: ✭ 231 (-12.83%)
Mutual labels:  sql, orm
Dapper
Dapper - a simple object mapper for .Net
Stars: ✭ 14,330 (+5307.55%)
Mutual labels:  sql, dapper
Jaguar orm
Source-generated ORM with relations (one-to-one, one-to-many, many-to-many), preloading, cascading, polymorphic relations, etc
Stars: ✭ 188 (-29.06%)
Mutual labels:  sql, orm
Sqlhelper
SQL Tools ( Dialect, Pagination, DDL dump, UrlParser, SqlStatementParser, WallFilter, BatchExecutor for Test) based Java. it is easy to integration into any ORM frameworks
Stars: ✭ 242 (-8.68%)
Mutual labels:  sql, orm
Rql
Resource Query Language for REST
Stars: ✭ 190 (-28.3%)
Mutual labels:  sql, orm
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+968.68%)
Mutual labels:  sql, orm
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+734.34%)
Mutual labels:  sql, orm
Granite
ORM Model with Adapters for mysql, pg, sqlite in the Crystal Language.
Stars: ✭ 238 (-10.19%)
Mutual labels:  sql, orm
Sparrow
A simple database toolkit for PHP
Stars: ✭ 236 (-10.94%)
Mutual labels:  sql, orm
Nut
Advanced, Powerful and easy to use ORM for Qt
Stars: ✭ 181 (-31.7%)
Mutual labels:  sql, orm
Xo
Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server
Stars: ✭ 2,974 (+1022.26%)
Mutual labels:  sql, orm
Oj
🍹 A Clojure library for talking to your database.
Stars: ✭ 171 (-35.47%)
Mutual labels:  sql, orm
Grails Data Mapping
GORM - Groovy Object Mapping
Stars: ✭ 194 (-26.79%)
Mutual labels:  sql, orm
Linq2db.entityframeworkcore
Bring power of Linq To DB to Entity Framework Core projects
Stars: ✭ 166 (-37.36%)
Mutual labels:  sql, orm
Clear
Advanced ORM between postgreSQL and Crystal
Stars: ✭ 220 (-16.98%)
Mutual labels:  sql, orm
Norm
Access a database in one line of code.
Stars: ✭ 152 (-42.64%)
Mutual labels:  sql, orm
Sqlservice
The missing SQLAlchemy ORM interface.
Stars: ✭ 159 (-40%)
Mutual labels:  sql, orm
Gosql
🐥The very simple ORM library for Golang
Stars: ✭ 233 (-12.08%)
Mutual labels:  sql, orm
Data
ATK Data - Data Access Framework for high-latency databases (Cloud SQL/NoSQL).
Stars: ✭ 243 (-8.3%)
Mutual labels:  sql, orm

What's Dapper Plus?

Like Dapper,

Dapper Plus is a NuGet library that you can add to your project that will extend your IDbConnection and IDbTransaction interface with high efficient Bulk Actions Helpers (Insert, Update, Delete, and Merge).

It can be used with or without Dapper, and it's compatible with all other Dapper packages.

Example

// CONFIGURE & MAP entity
DapperPlusManager.Entity<Order>().Table("Orders").Identity(x => x.ID);

// CHAIN & SAVE entity
connection.BulkInsert(orders)
          .AlsoInsert(order => order.Items);
          .Include(order => order.ThenMerge(order => order.Invoice)
                                 .AlsoMerge(invoice => invoice.Items))
          .AlsoMerge(order => order.ShippingAddress);	

Download

download

PM> Install-Package Z.Dapper.Plus

* PRO Version unlocked for the current month

Stay updated with latest changes

Twitter Follow Facebook Like

Wiki

Introduction

Dapper Plus - Actions

Dapper Plus - Mapper

Dapper Plus - Manager

PRO License

Mapper

Dapper Plus Mapper allows to map the conceptual model (Entity) with the storage model (Database) and configure options to perform Bulk Actions.

DapperPlusManager.Entity<Order>().Table("Orders")
                                 .Identity(x => x.ID)
                                 .BatchSize(200);

Bulk Actions

Bulk Actions allow to perform a bulk insert, update, delete or merge and include related child items.

connection.BulkInsert(orders, order => order.Items)
          .BulkInsert(invoices, invoice => invoice.Items)
          .BulkMerge(shippingAddresses);

Also Bulk Actions

Also Bulk Actions allow to perform bulk action with a lambda expression using entities from the last Bulk[Action] or ThenBulk[Action] used.

connection.BulkInsert(orders)
          .AlsoInsert(order => order.Items)
          .AlsoInsert(order => order.Invoice)
          .AlsoInsert(order => order.Invoice.Items);

Then Bulk Actions

Then Bulk Actions is similar to Also Bulk Actions but modify entities used for the next bulk action using a lambda expression.

connection.BulkInsert(orders)
          .AlsoInsert(order => order.Items)
          .ThenInsert(order => order.Invoice)
          .ThenInsert(invoice => invoice.Items);

Include Actions

The Dapper Plus Include method allow resolving issues with multiple "ThenBulk[Action]" method.

connection.BulkInsert(orders)
          .Include(x => x.ThenInsert(order => order.Items)
                         .ThenInsert(orderItem => orderItem.Metas))
          .Include(x => x.ThenInsert(order => order.Invoice)
                         .ThenInsert(Invoice => invoice.Items));   	

Transaction

All Dapper Plus extension methods are also available on the IDbTransaction interface

transaction.BulkInsert(orders)
          .Include(x => x.ThenInsert(order => order.Items)
                         .ThenInsert(orderItem => orderItem.Metas))
          .Include(x => x.ThenInsert(order => order.Invoice)
                         .ThenInsert(Invoice => invoice.Items));   	

DB Provider Supported

All major database providers are supported or under development.

  • SQL Server 2008+
  • SQL Azure
  • SQL Compact
  • SQLite
  • MySQL
  • PostgreSQL
  • Oracle

Support

Contact our outstanding customer support for any request. We usually answer within the next business day, hour, or minutes!

PRO

PRO Version unlocked for the current month

Features PRO Version
Bulk Insert Yes
Bulk Update Yes
Bulk Delete Yes
Bulk Merge Yes
Bulk Action Async Yes
Bulk Also Action Yes
Bulk Then Action Yes
Commercial License Yes
Royalty-Free Yes
Support & Upgrades (1 year) Yes

Learn more about the PRO Version

Contribute

The best way to contribute is by spreading the word about the library:

  • Blog it
  • Comment it
  • Fork it
  • Star it
  • Share it

A HUGE THANKS for your help.

More Projects

Contact our outstanding customer support for any request. We usually answer within the next business day, hour, or minutes!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].