AuroraDB MySqlConnector (Bulk)

This page contains the latest information of the releases of RepoDb.AuroraDb.MySqlConnector.BulkOperations library.

View the NuGet package here or download it directly here.

RepoDb.AuroraDb.MySqlConnector.BulkOperations (v0.0.1-alpha3) - Preview

Released: October 9, 2026

  • Enhancement: Made the package NativeAOT and trimming compatible (IsAotCompatible), replacing the reflection-based and dynamic code paths with AOT-safe equivalents.
  • Referenced the RepoDb package v1.17.0-beta1.
  • Referenced the RepoDb.AuroraDb.MySqlConnector package v0.0.1-alpha3.

RepoDb.AuroraDb.MySqlConnector.BulkOperations (v0.0.1-alpha2) - Preview

Released: TBA

New

RepoDb.AuroraDb.MySqlConnector.BulkOperations (v0.0.1-alpha1) - Preview

Released: September 29, 2026

New

First (alpha) release of the bulk operations extension for RepoDb.AuroraDb.MySqlConnector, built on AuroraDbBulkCopy, a LOAD DATA LOCAL INFILE-based bulk writer from RepoDb.Connector.AuroraDb.MySqlConnector. MySQL has neither a native MERGE statement nor a session-scoped identity sequence object, so the SQL-generation approach here (UPDATE ... INNER JOIN plus an anti-joined INSERT ... SELECT for merges; identity values pre-assigned via a session variable rather than read back afterward) differs meaningfully from a Postgres-wire provider like RepoDb.AuroraDb.PostgreSql.BulkOperations. #1356

What’s included

  • BulkInsert, BulkMerge, BulkUpdate, BulkDelete, and BulkDeleteByKey, each with an Async overload — callable against an AuroraDbConnection, a BaseRepository<TEntity, AuroraDbConnection>, or a DbRepository<AuroraDbConnection>, with an entity list, a DataTable, or an IDataReader (BulkDeleteByKey takes a list of primary key values instead).
  • AuroraDbBulkImportIdentityBehavior (KeepIdentity default, ReturnIdentity) — controls whether identity values are sent as-is or pre-assigned and read back via a staging table.
  • AuroraDbBulkImportPseudoTableType (Auto, Memory, Physical) — accepted for every staged operation, though currently every call resolves to Physical regardless of the value passed.
  • AuroraDbBulkInsertMapItem — explicit source-to-destination column mapping for BulkInsert/BulkMerge/BulkUpdate, with an optional AuroraDbType override per mapping.
  • AuroraDbTraceKeys — the traceKey constants for use with a custom ITrace.
  • ReturnIdentity seeds its pre-assignment from a live SELECT MAX(identityColumn) + 1 FROM <table> rather than information_schema.TABLES.AUTO_INCREMENT, which MySQL 8 caches for up to information_schema_stats_expiry seconds (24 hours by default) and can return a stale, already-used counter.
  • Targets .NET 8, .NET 9 and .NET 10.

Known limitations (v1)

  • RepoDb.Connector.AuroraDb.MySqlConnector is a prerelease package (v0.0.1-alpha1); its public API (AuroraDbConnection, AuroraDbBulkCopy, etc.) may still change before it reaches a stable release.
  • identityBehavior: ReturnIdentity on BulkInsert or BulkMerge requires AllowUserVariables=True on the connection string — AuroraDbConnection defaults this to false. Plain BulkInsert (without ReturnIdentity), BulkUpdate, BulkDelete and BulkDeleteByKey don’t need it.
  • AuroraDbBulkImportPseudoTableType has no effect yet — every staged bulk call uses a Physical (persistent, not session-private) pseudo table regardless of the value passed. The Memory (TEMPORARY table) code path is implemented but not currently reachable.
  • The ReturnIdentity seed lookup (SELECT MAX(identityColumn) + 1) and the pre-assignment UPDATE that follows it are two separate round trips, leaving a small race window against a concurrent writer to the same table — there is no table-level locking (LOCK TABLES would silently commit any transaction already open on the connection).
  • BulkMerge’s unmatched-row INSERT uses a LEFT JOIN ... WHERE ... IS NULL anti-join on the first qualifier column, which assumes that column is never legitimately null on a real, matched row.
  • There is no RepoDb.AuroraDb.PostgreSql-style Type Coercion concern here — LOAD DATA LOCAL INFILE is text-based, not a fixed-width binary protocol, so no destination-type coercion step is needed before the write.

Bumps

  • Referenced the RepoDb.AuroraDb.MySqlConnector package v0.0.1-alpha1.
  • References the RepoDb.Connector.AuroraDb.MySqlConnector package v0.0.1-alpha1.