Entity Framework Core extensions for high-performance bulk CRUD operations (Insert, Update, Delete, Read, Upsert, Sync) on SQL Server, PostgreSQL, MySQL, SQLite, and Oracle.
EFCore.BulkExtensions is a high-performance extension library for Entity Framework Core that enables bulk and batch CRUD operations (Insert, Update, Delete, Read, Upsert, Sync) on large datasets. It solves the performance limitations of standard EF Core when handling massive data inserts, updates, or deletions by leveraging database-specific bulk copy protocols and optimized SQL.
.NET developers and teams using Entity Framework Core who need to process large volumes of data efficiently, such as in big-data, AI, fintech, or enterprise applications with frequent bulk database operations.
Developers choose EFCore.BulkExtensions for its dramatic performance improvements—often 4x to 350x faster than standard EF Core—and its support for multiple databases (SQL Server, PostgreSQL, MySQL, Oracle, SQLite) with native bulk tools. It is Microsoft-recommended, lightweight, and offers extensive configuration for complex scenarios.
Entity Framework EF Core efcore Bulk Batch Extensions with BulkCopy in .Net for Insert Update Delete Read (CRUD), Truncate and SaveChanges operations on SQL Server, PostgreSQL, MySQL, SQLite, Oracle
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 inserts of 1 million rows in 15 seconds versus 60 seconds with standard EF Core, offering up to 4x speed improvements and even greater gains for deletes.
Works with SQL Server, PostgreSQL, MySQL, Oracle, and SQLite by leveraging native bulk tools like SqlBulkCopy, COPY BINARY, and MERGE, ensuring optimized operations across platforms.
Provides over 40 BulkConfig options, such as SetOutputIdentity for handling generated IDs and IncludeGraph for managing related data, allowing fine-tuning for complex enterprise scenarios.
Listed in Microsoft's top 10 EF Core extensions, adding trust and validation for adoption in critical, high-performance applications.
Requires database-specific adjustments like MySQL's SET GLOBAL local_infile command and SQLite's SQLitePCLRaw package, and the extensive BulkConfig properties can be overwhelming for new users.
Uses a dual license (cFOSS) with conditions for free usage, potentially necessitating a commercial license purchase, which adds legal and financial overhead for teams.
BulkInsertOrUpdateOrDelete (Sync) is not supported for SQLite and PostgreSQL, requiring manual data splitting and additional code to achieve synchronization.
Separate NuGet packages are needed for each EF Core version (e.g., 7.x, 8.x), complicating upgrades and increasing maintenance effort with potential breaking changes.