- Auditing
- Case Sensitivity
- Entity DataSource / Lambda Mapping
- Output Value
- And more...
SQL Server - Benchmarks
Operations | 1,000 Rows | 10,000 Rows | 100,000 Rows | 1,000,000 Rows |
---|---|---|---|---|
Insert | 6 ms | 25 ms | 200 ms | 2,000 ms |
Update | 50 ms | 80 ms | 575 ms | 6,500 ms |
Delete | 45 ms | 70 ms | 625 ms | 6,800 ms |
Merge | 65 ms | 160 ms | 1,200 ms | 12,000 ms |
As fast as SqlBulkCopy for insert but with way more capabilities
Support Multiple SQL Providers:
- SQL Server 2008+
- SQL Azure
- SQL Compact
- MySQL
- SQLite
- PostgreSQL
- Oracle
Support Multiple Datasources:
- Entity
- DataTable
- DataRow
- DataReader
- DataSet
- Expando Object
PM> Install-Package Z.BulkOperations
* PRO Version unlocked for the current month
Stay updated with latest changes
You need to output newly generated identity value but SqlBulkCopy do not support it.
Map your identity column with output direction.
var bulk = new BulkOperation(connection);
bulk.ColumnMappings.Add("CustomerID", ColumnMappingDirectionType.Output);
// ... mappings ...
bulk.BulkInsert(dt);
You can also output concurrency column (Timestamp) or any other column values. All kind of mapping direction are supported including "Formula" to use with a SQL Formula.
You have a list of entity to insert but SqlBulkCopy doesn't support entity and lambda expression mapping.
Create a generic bulk operations with your entity type and use lambda expression for your column input, output and primary key mapping.
var bulk = new BulkOperation<Customer>(connection);
bulk.ColumnInputExpression = c => new { c.Name, c.FirstName };
bulk.ColumnOutputExpression = c => c.CustomerID;
bulk.ColumnPrimaryKeyExpression = c => c.Code;
bulk.BulkMerge(customers);
Get rid of hardcoded string and use strongly-typed lambda expressions.
You have a DataTable which columns name match name in the database but SqlBulkCopy throw an error because name match are case insensitive.
Turn off case sensitivity with IsCaseSensitive property.
var bulk = new BulkOperation(connection);
bulk.IsCaseSensitive = false;
bulk.BulkMerge(dt);
Remove useless code which would have required to create your own mapping and keep the essentials.
Contact our outstanding customer support for any request. We usually answer within the next business day, hour, or minutes!
PRO Version unlocked for the current month
Features | PRO Version |
---|---|
Bulk Insert | Yes |
Bulk Update | Yes |
Bulk Delete | Yes |
Bulk Merge | Yes |
Bulk SaveChanges | Yes |
Bulk Synchornize | Yes |
DeleteFromQuery | Yes |
UpdateFromQuery | Yes |
Commercial License | Yes |
Royalty-Free | Yes |
Support & Upgrades (1 year) | Yes |
Learn more about the PRO Version
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.
Entity Framework
Bulk Operations
Expression Evaluator
Utilities
Need more info? [email protected]
Contact our outstanding customer support for any request. We usually answer within the next business day, hour, or minutes!