Releases for RepoDb.MySql.BulkOperations
View the NuGet package here or download it directly here.
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.