https://github.com/andreisabau/EFBulkInsert
Extension method over the Entity Framework DbContext for bulk insertion of entities.
https://github.com/andreisabau/EFBulkInsert
bulk bulkinsert entity-framework insert
Last synced: 2 months ago
JSON representation
Extension method over the Entity Framework DbContext for bulk insertion of entities.
- Host: GitHub
- URL: https://github.com/andreisabau/EFBulkInsert
- Owner: andreisabau
- License: mit
- Created: 2017-01-04T23:11:21.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-01-16T20:12:19.000Z (about 2 years ago)
- Last Synced: 2025-10-25T08:11:13.993Z (5 months ago)
- Topics: bulk, bulkinsert, entity-framework, insert
- Language: C#
- Homepage: https://www.nuget.org/packages/EFBulkInsert/
- Size: 93.8 KB
- Stars: 16
- Watchers: 3
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README



## EFBulkInsert
#### Provides an extension method over the Entity Framework DbContext for bulk insertion of entities.
### `BulkInsert(IEnumerable entities, int batchSize = 5000)`
Allows fast insertion of entities in bulk with retrieval of the generated identity column.
### Installation:
##### Package Manger
```
Install-Package EFBulkInsert -Version 0.4.0
```
##### .NET CLI
```
dotnet add package EFBulkInsert --version 0.4.0
```
##### PackageReference
```
```
### Usage:
```csharp
dbContext.BulkInsert(entites);
dbContext.BulkInsert(entities, 10000); // bulk insert with batch size of 10000
```
Performance improvements
| # of entities | BulkInsert | EF SaveChanges |
| ------------|------------|----------------|
| 1000 | 127 ms | 493 ms |
| 5000 | 153 ms | 2573 ms |
| 10000 | 191 ms | 4214 ms |
| 50000 | 485 ms | 22542 ms |
| 100000 | 871 ms | 41374 ms |
| 500000 | 3916 ms | N/A |
| 1000000 | 7769 ms | N/A |
Tests made with: SQL Server 2016, EntityFramework 6.1.3 and EFBulkExtensions 0.1.0.
### Version history
##### v0.4.0 (2020-03-09)
- Added: Support for Entity Framework Core 3.1.0
##### v0.3.0 (2018-03-27)
- Added: Support for schemas
- Fixed: Inserting into tables without identity columns
- Fixed: Retrieving the table name from EF metadata
##### v0.2.0 (2017-05-17)
- Fixed: Support for transactions
##### v0.1.0 (2017-01-26)
- Initial release