MySQL (Bulk)
This page contains the latest information of the releases of RepoDb.MySql.BulkOperations library.
View the NuGet package here or download it directly here.
RepoDb.MySql.BulkOperations (v1.16.0)
Released: September 9, 2026
First general availability (non-preview) release of the MySQL Bulk Operations package, promoting the v0.0.1-alpha1 release below to stable. No functional changes since v0.0.1-alpha1 — see that entry for the full feature set and known limitations.
RepoDb.MySql.BulkOperations (v0.0.1-alpha1)
Released: August 8, 2026
New
First release of the bulk operations extension for RepoDb.MySql, providing BulkInsert, BulkMerge, BulkUpdate, BulkDelete, and BulkDeleteByKey, each with an Async overload, callable against a MySqlConnection (MySql.Data), a table name, or a DataTable.
MySql.Data ships no reader-streaming bulk-copy API of its own, so every row-load in this package goes through a dedicated internal MySqlBulkCopy class — a LOAD DATA LOCAL INFILE-based stand-in, built on top of MySql.Data’s MySqlBulkLoader, that serializes rows to a temporary tab-delimited file before handing it off. It’s the package’s only row-load path, used by every operation including the identity read-back; there’s no array-bind fallback and no dependency on the third-party MySqlConnector package or its own MySqlBulkCopy type.
Verification status: this package has been implemented and reviewed, but not yet exercised against a live MySQL instance. Verify the bulk-load path, the identity read-back, and the staging-table strategy end-to-end before relying on this package in production.
What’s included
BulkInsert,BulkMerge, andBulkUpdate.BulkDelete— matched by qualifiers, staging the qualifier columns only.BulkDeleteByKey— matched by primary key, as a dedicated overload separate fromBulkDelete.- MySqlBulkImportIdentityBehavior (
KeepIdentity,ReturnIdentity) — controls whether identity values are left toAUTO_INCREMENTor pre-assigned and read back. - MySqlBulkImportPseudoTableType (
Auto,Memory,Physical) — picks the staging-table strategy used byBulkMerge/BulkUpdate/BulkDelete. MySqlBulkInsertMapItem— explicit source-to-destination column mapping forBulkInsert.
Known limitations (v1)
- The internal
MySqlBulkCopyissuesLOAD DATA LOCAL INFILEdirectly against the connection, never through the caller’sMySqlTransaction— a rolled-back transaction will not undo an already-loadedBulkInsert. Memorystaging currently always resolves toPhysical, which has no per-session isolation — concurrent callers bulk-writing to the same table will race each other’s staged data.- Every
BulkMerge/BulkUpdate/BulkDelete/BulkDeleteByKeycall recreates and drops its staging pseudo table, and each of those steps implicitly commits any other pending work on the connection (MySQL DDL auto-commits). -
Requires
AllowLoadLocalInfile=True;AllowUserVariables=True;on the connection string, plus the server’slocal_infileglobal variable enabled. - Referenced the
RepoDbpackagev1.16.0-alpha2. - Referenced the
RepoDb.MySqlpackagev1.16.0-alpha1.