High-performance Oracle bulk insert extension supporting parent/child entity mapping and output identity using EF Core and ODP.NET.
$ dotnet add package BulkInsertExtension.OracleHigh-performance bulk insert extension for Oracle using EF Core and ODP.NET.
dotnet add package OracleBulkInsertExtension
-------------------------------------------------
using Microsoft.EntityFrameworkCore;
using OracleBulkInsertExtension;
var dbContext = new MyDbContext();
var entities = new List<MyEntity>
{
new MyEntity { Name = "Item 1", Value = 10 },
new MyEntity { Name = "Item 2", Value = 20 }
};
// Simple bulk insert
await dbContext.BulkInserOptimizedAsync(entities);
// With options
var options = new BulkInsertWithPrivateTempOptions
{
EncryptFields = true,
Encryptor = (obj, ctx) => obj,
ApplyAudit = (obj, ctx) => { /* audit logic */ },
DegreeOfParallelism = 4,
SchemaFallback = "MY_SCHEMA"
};
await dbContext.BulkInserOptimizedAsync(entities, options);
----------------------------------------------------------------------
| Property | Description |
| ------------------- | -------------------------------------------- |
| EncryptFields | Apply field encryption. |
| Encryptor | Function to encrypt a single entity. |
| ApplyAudit | Function to apply audit to each entity. |
| DegreeOfParallelism | Parallel tasks for child inserts. Default 4. |
| SchemaFallback | Schema to use if EF Core schema is missing. |
Notes:
Child entities are automatically linked to their parent ID.
Nullable types are handled with default values.
Version 0.0.2 Breaking Changes:
The old BulkInsertWithPrivateTemp method has been removed.
Use the new BulkInserOptimizedAsync method instead.