AuroraDB MySqlConnector

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

View the NuGet package here or download it directly here.

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

Released: September 29, 2026

New

First (alpha) release of the dedicated Amazon Aurora MySQL provider for RepoDB, built on top of RepoDb.Connector.AuroraDb.MySqlConnector — a connector whose AuroraDbConnection wraps MySqlConnector inside the AWS Advanced .NET Data Provider Wrapper. Amazon Aurora MySQL is MySQL-compatible, so this package was ported from RepoDb.MariaDbConnector and generates the same SQL, apart from the MySQL-specific VALUES ROW(...) identity-retrieval statement noted below.

This is the sibling provider to RepoDb.AuroraDb.PostgreSql — pick whichever matches your Aurora cluster’s engine edition. See Get Started with AuroraDB for both.

What’s included

  • AuroraDbBootstrap / AuroraDbGlobalConfiguration.UseAuroraDb() — initializes RepoDB for use with AuroraDbConnection (GlobalConfiguration.Setup().UseAuroraDb()), mapping the AuroraDbDbSetting, AuroraDbDbHelper, and AuroraDbStatementBuilder.
  • AuroraDbDbSetting — Aurora MySQL-specific behavior: backtick (`) opening/closing identifier quotes, @ parameter prefix, no table hints, no native UPSERT keyword (Merge is built via INSERT ... ON DUPLICATE KEY UPDATE instead), and multi-statement command text support (IsMultiStatementExecutable = true, MultiStatementSeparator = ";").
  • AuroraDbStatementBuilder — generates Aurora MySQL-flavored SQL for every operation: LIMIT/LIMIT ... OFFSET paging, INSERT ... ON DUPLICATE KEY UPDATE for Merge/MergeAll, and identity/primary-key retrieval via LAST_INSERT_ID() for Insert/Merge/MergeAll — InsertAll instead reads back the whole batch’s identities with one standalone VALUES ROW(LAST_INSERT_ID() + n), ... statement, which requires MySQL 8.0.19 or later (Aurora MySQL version 3).
  • AuroraDbDbHelper — schema/type discovery (GetFields/GetFieldsAsync) sourced from INFORMATION_SCHEMA.COLUMNS, and generated-identity retrieval (GetScopeIdentity/GetScopeIdentityAsync) via SELECT LAST_INSERT_ID();.
  • Resolvers — AuroraDbDbTypeNameToClientTypeResolver (maps INFORMATION_SCHEMA.COLUMNS.DATA_TYPE values to .NET CLR types) and AuroraDbDbTypeToStringNameResolver (maps AuroraDbType to Aurora MySQL SQL type names).
  • Property handler — AuroraDbGeometryToMySqlGeometryPropertyHandler, mapping the MySQL spatial types onto a MySqlGeometry property.
  • Parameter attribute mirroring AuroraDbParameter, settable per entity property: AuroraDbType, SourceColumn, SourceColumnNullMapping, and SourceVersion.
  • Errors raised by the driver are wrapped into AuroraDbException, exposing the MySQL error Number and SqlState (e.g. 1062/23000 for a duplicate key, 1146/42S02 for a missing table). A failure to open the connection is not wrapped and surfaces as the underlying MySqlConnector.MySqlException instead.
  • TransactionScope is supported — unlike the AWS wrapper’s probes on the PostgreSQL edition, the dialect/topology-detection queries this connector runs on every connection open (SHOW VARIABLES LIKE ..., an information_schema.tables lookup) do not fail against a plain (non-Aurora) MySQL server, so they don’t abort an ambient transaction.
  • 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, AuroraDbType, AuroraDbBulkCopy, etc.) may still change before it reaches a stable release.
  • Unlike RepoDb.MariaDbConnector, which it was ported from, this package has no netstandard2.0 build — it targets .NET 8, .NET 9 and .NET 10 only, since the connector and the AWS wrapper it depends on ship no earlier target.
  • Requires Aurora MySQL version 3 (MySQL 8.0.19 or later, for the VALUES ROW(...) identity-retrieval statement used by InsertAll). Aurora MySQL version 2 (MySQL 5.7-compatible) is not supported and rejects that statement with a syntax error.
  • RepoDb.AuroraDb.MySqlConnector and RepoDb.AuroraDb.PostgreSql declare ten identically-named types in the same namespaces (AuroraDbBootstrap, AuroraDbGlobalConfiguration/UseAuroraDb(), AuroraDbDbSetting, AuroraDbDbHelper, AuroraDbStatementBuilder, AuroraDbDbTypeNameToClientTypeResolver, and four parameter attributes) — the same pattern as MariaDb and MariaDbConnector. A project referencing both packages fails to compile. Keep each provider in its own project, or use extern alias for one of the references, when an application needs to talk to both an Aurora MySQL and an Aurora PostgreSQL cluster.
  • Every AuroraDbConnection open runs the AWS wrapper’s dialect/topology-detection queries against the server — a meaningful number of extra round trips per connection, even against a genuine Aurora cluster.
  • There is no RepoDb.AuroraDb.MySqlConnector.BulkOperations package yet. Use the batched InsertAll/MergeAll/UpdateAll operations, or AuroraDbBulkCopy from RepoDb.Connector.AuroraDb.MySqlConnector directly, in the meantime.

Bumps

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