Extend and Overcome SqlBulkCopy Limitations with Must-Have Features


 Download
download
* PRO Version unlocked for the current month

// Easy to use
var bulk = new BulkOperation(connection);
bulk.BulkInsert(dt);
bulk.BulkUpdate(dt);
bulk.BulkDelete(dt);
bulk.BulkMerge(dt);

// Easy to customize
var bulk = new BulkOperation<Customer>(connection);
bulk.BatchSize = 1000;
bulk.ColumnInputExpression = c => new { c.Name,  c.FirstName };
bulk.ColumnOutputExpression = c => c.CustomerID;
bulk.ColumnPrimaryKeyExpression = c => c.Code;
bulk.BulkMerge(customers);

Amazing performance, outstanding support!

 Read More Success Story



Share your experience. We love to hear from you: info@zzzprojects.com

Output Identity Value

Overcome SqlBulkCopy limitations and use flexible features to output inserted identity and concurrency column values.

var bulk = new BulkOperation(connection)

// Output newly inserted identity value after an insert
bulk.ColumnMappings.Add("CustomerID", ColumnMappingDirectionType.Output);

bulk.BulkInsert(dt);

Insert, Update, Delete, Merge and more...

Bulk Operations is not only about inserting, get more capability over SqlBulkCopy.

  • BulkInsert
  • BulkUpdate
  • BulkDelete
  • BulkMerge (Upsert)
  • BulkSaveChanges
  • BulkSynchronize
// Support all type of operations
var bulk = new BulkOperation(connection);
bulk.BulkInsert(dt);
bulk.BulkUpdate(dt);
bulk.BulkDelete(dt);
bulk.BulkMerge(dt);
bulk.BulkSaveChanges(ds);
bulk.BulkSynchronize(dt);

Generic List<> as DataSource

Improve code maintainability by using strongly-typed lambda expression over hard coded string.

  • Use Bulk Operations with Generic List<>
  • Use Bulk Operations with Expando Object
  • Use Lambda Expression for mapping
var bulk= new BulkOperation<Customer>(connection);
bulk.DestinationTableName = "Customer";

// Column Columns to Input
bulk.ColumnInputExpression = c => new { c.Code, c.Name };

// Choose Columns to Output
bulk.ColumnOutputExpression = c => c.CustomerID;

// Choose Key to Use
bulk.ColumnPrimaryKeyExpression = c => c.Code;

bulk.BulkMerge(customers);

Bulk Operations from LINQ Query

Perform bulk operations from LINQ Query without loading entities in memory.

  • DeleteFromQuery
  • UpdateFromQuery
var bulk = new BulkOperation<Customer>(connection);

// DELETE all customers inactive for more than 2 years
bulk.DeleteFromQuery(
    c => c.Where(x => x.LastLogin < DateTime.Now.AddYears(-2)));

// UPDATE all customers inactive for more than 2 years
bulk.UpdateFromQuery(
    c => c.Where(x => x.Actif && x.LastLogin < DateTime.Now.AddYears(-2)),
    c => new Customer {Actif = false});

AutoMap with Case Insensitive

Sick of not being able to map column because of case sensitivity issue? Use flexible features to customize configuration

  • Auditing
  • Batch Size
  • Case Sensitivity
  • Logging
var bulk = new BulkOperation(connection);
bulk.CaseSensitive = CaseSensitiveType.Insensitive;
bulk.ColumnMappings.Add("cOdE", "Code");
bulk.BulkMerge(dt);

 View More Features

Test our Outstanding Support

We usually answer within the next business day, hour, or minutes!


Contact Us

Email our team for any questions. We love to hear from you!

info@zzzprojects.com

Wiki

Consult our complete documentation to help you getting started.

Wiki

Forum

Visit the forum to report issues, ask questions, and propose new features.

Forum

Open Source

Access the partial source of the library you're using. (Under development)

GitHub

Pricing


Join thousands of projects already using bulk operations and make YOUR customers happy.

  • Improve applications responsivity
  • Minimize time your customers wait
  • Maximize time your customers work

"Time Is Money" and your customers expect applications to respond as quickly as possible.


Every month, a FREE trial of the PRO version is available to let you evaluate all its features without limitations.


Using Entity Framework or Dapper?

Features PRO
Bulk Insert
Bulk Update
Bulk Delete
Bulk Merge
Bulk SaveChanges
Bulk Synchronize
DeleteFromQuery
UpdateFromQuery
Commercial License
Royalty-Free
Support & Upgrades (1 year)



* Contact us (sales@zzzprojects.com) for Quote, payment method alternative, or major bundle discount when purchasing more than one product (or you already bought one).