A simple .NET library for high-performance bulk operations (insert, update, delete, merge, match) on SQL Server using SqlBulkCopy.
EntityFrameworkCore.SqlServer.SimpleBulks is a .NET library that provides high-performance bulk operations for SQL Server databases. It extends Entity Framework Core with methods for bulk insert, update, delete, merge, and match operations, solving the performance issues of handling large datasets with standard EF Core methods. The library uses SqlBulkCopy under the hood to achieve significant speed improvements and reduced memory allocation.
.NET developers using Entity Framework Core with SQL Server who need to process large volumes of data efficiently. This includes applications dealing with data migration, ETL processes, batch processing, or any scenario requiring high-throughput database operations.
Developers choose this library because it offers dramatically better performance than standard Entity Framework Core operations for bulk data handling, with benchmarks showing orders of magnitude improvement in speed and memory usage. It provides a simple, intuitive API that integrates seamlessly with existing EF Core code while also supporting raw SQL connections for maximum flexibility.
Fast and simple bulk insert (retain client populated Ids or return db generated Ids), bulk update, bulk delete, bulk merge and bulk match for SQL Server.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show up to 50x faster inserts and 90% lower memory allocation versus standard EF Core for large datasets, leveraging SqlBulkCopy under the hood.
Works seamlessly with both EF Core DbContext and raw SqlConnection instances, offering lambda, dynamic string, and builder syntax for column mapping.
Includes bulk insert, update, delete, merge, match, temp tables, and direct operations, covering most high-volume data synchronization needs.
Provides options like batch size, timeout, logging, and identity handling through dedicated classes like BulkInsertOptions for fine-tuning.
The core library is designed around SqlBulkCopy; while separate packages exist for PostgreSQL and MySQL, they are distinct and may lack feature parity.
Using ConnectionContextExtensions requires global TableMapper setup, which adds complexity and potential for misconfiguration errors.
The README emphasizes success cases and benchmarks, with minimal documentation on exception management or rollback strategies for failed bulk operations.
Multiple API styles (lambda, dynamic strings, builder) can lead to decision fatigue and inconsistent codebases without clear best-practice guidance.