MySQL Connector/NET Changelog

What's new in MySQL Connector/NET 8.3.0

Jan 29, 2024
  • Deprecation and Removal Notes:
  • Calling the MySqlDataReader.GetString() method now throws an InvalidCastException exception if the associated column is not a string type.
  • The OldGetStringBehavior connection option was added to allow (by setting it to true) restoring previous behavior by logging a deprecation warning instead of throwing the exception. This option defaults to false.
  • This option will be removed in the near future, potentially in version 9.0.0.
  • Functionality Added or Changed:
  • Previously, each Entity Framework Core (EF Core) NuGet package supported a single .NET target. For instance, the connector’s EF Core 8 package was able to target .NET 8.0 only. Now, the package-target support relationships are:
  • EF Core 6 targets .NET 6
  • EF Core 7 targets .NET 6, .NET 7
  • EF Core 8 targets .NET 6, .NET 7, .NET 8
  • Upgraded the Google.Protobuf dependency to version 3.25.1.
  • Previously, Connector/NET 8.2.0 supported .NET 8 and Entity Framework Core 8.0 (EF8) preview releases only. Connector/NET now supports all .NET 8 and EF8 releases. (WL #16035)
  • Added Microsoft.Build.Traversal support; executing MSBUILD dirs.proj in the Connector/NET root folder now builds all projects in the repository (MySQL.Data, MySQL.Data.OpenTelemetry, MySQL.Web, EntityFramework, and EFCore) as defined in dirs.proj.
  • Bugs Fixed:
  • Added an AssemblyInfo file for MySQL.Data.OpenTelemtry.
  • After an application called Dispose() on a connection object, it was possible to reopen the connection. Now, the connector returns an exception if an attempt is made to reopen a disposed connection. (Bug #35827809)
  • The timeout period of a transaction could elapsed prior to obtaining a connection from the connection pool. This might occur because all pooled connections were neither discarded from nor returned to the pool, but remained marked as InUse. The fix resolves an issue that prevented the removal of a connection from the connection pool after an exception was thrown.

New in MySQL Connector/NET 8.2.0 (Nov 27, 2023)

  • Packaging Notes:
  • Updated the Portable.BouncyCastle 1.9.0 NuGet package reference to BouncyCastle.Cryptography 2.2.1, which is the currently maintained package. (Bug #111361, Bug #35488339)
  • Functionality Added or Changed:
  • Combined all of the Entity Framework Core projects (6, 7, and 8) into a single project under a folder named EFCore. (WL #15799)
  • Connector/NET now supports .NET 8.0 and Entity Framework Core 8.0 (preview versions). (WL #15792)
  • Connector/NET now supports an authentication method that enables users to authenticate to MySQL Server using WebAuthn-aware devices for classic MySQL protocol connections. WebAuthn authentication is based on the FIDO and FIDO2 standards. For an overview of the supported client-side authentication plugins and authentication methods, see Connector/NET Authentication. (WL #15193)
  • Bugs Fixed:
  • Applications like Microsoft Excel and Microsoft Power BI Desktop emitted an error when used with Connector/NET 8.0.33 and later. This fix identifies and restores the missing component. (Bug #110975, Bug #35379875)
  • Multiple MySqlConnection objects on separate threads called simultaneously could return ArgumentException or InvalidOperationException when MySqlPoolManager.GetPoolAsync tried to modify the shared thread-pool object concurrently from the different threads. (Bug #110717, Bug #35307501)

New in MySQL Connector/NET 8.1.0 (Jul 19, 2023)

  • Deprecation and Removal Notes:
  • Previously, mysql.proc was used as a way of speeding up queries for procedures and parameters. Starting with MySQL 8.0, the mysql.proc table is no longer available and the connector now uses information_schema. (WL #15643, WL #15644, WL #15654)
  • Support to install Connector/NET through MySQL Installer is removed. The preferred method is to install Connector/NET using NuGet packages for full functionality, or the standalone MSI file for base-level functionality (see Installing Connector/NET on Windows). (WL #15795)
  • Connector/NET no longer supports the following discontinued standard and frameworks:
  • .NET Core 3.1 and 5.0
  • EF Core 3.1 and EF Core 5.0
  • (WL #15797)
  • Packaging Notes:
  • Connector/NET now provides the MySQL.Data.OpenTelemetry NuGet package that implements OpenTelementry.Api and adds the AddConectorNet extension method to TraceProviderBuilder, which sets the connector as a source of application-specific telemetry that client application code emits. For details, see Enabling OpenTelemetry Tracing. (WL #15707)
  • X DevAPI Notes:
  • Application developers must now ensure the availability of the ZstdSharp.Port library at run time when using the noinstall packages (NuGet packages provide the dependency). This implementation replaces the bundled implementation of the zstd compression algorithm, which was deactivated in Connector/NET 8.0.33. (WL #15708)
  • Bugs Fixed:
  • Queries using the MySql.Data.MySqlClient.MySqlConnection class did not connect as expected if the connector was installed using the MSI file. This fix now adds System.Threading.Tasks.Extensions and System.CompilerServices.Unsafe DLLs to the MSI file for inclusion into the GAC. (Bug #35360846)
  • Some DLL files in NuGet and No Install packages were unsigned. (Bug #35052869)
  • MySqlParameter.Clone could return a MySqlParameter object with a MySqlDbType value that differed from the original, rather than preserving the original type. (Bug #109682, Bug #34993796)
  • MySqlParameter.MySqlDbType, if set to MySqlDbType.Int24, emitted an error similar to Out of range value for column 'data' at row 1 when a prepared statement was executed and the parameter value was a negative number. (Bug #108756, Bug #34694519)

New in MySQL Connector/NET 8.0.33 (Apr 19, 2023)

  • Deprecation and Removal Notes:
  • Data can be passed in and out of a MySQL stored procedure through the MySqlCommand.Parameters collection. When used with a legacy server (prior to MySQL 8.0), the command object consults the mysql.proc table to determine the parameters of the stored procedure. This secondary action now is deprecated and will be removed in a future release. (WL #15645)
  • Packaging Notes:
  • .NET Framework 4.6.2 replaces version 4.5.2 in target frameworks. (WL #15641)
  • Connector/NET no longer provides within the install and no-install bundles any third-party libraries that the connector does not build internally. Application developers must now ensure the availability of following libraries at run time.
  • For applications using OCI Authentication and SSL Certificates validation:
  • Portable.BouncyCastle (see https://www.nuget.org/packages/Portable.BouncyCastle)
  • For applications using X DevAPI:
  • K4os.Compression.LZ4.Streams (see https://www.nuget.org/packages/K4os.Compression.LZ4.Streams)
  • Google.Protobuf (see https://www.nuget.org/packages/Google.Protobuf)
  • (WL #15682)
  • X DevAPI Notes:
  • Class MySqlX.XdevAPI.Collection<T> is expanded to enable the use of generic types with operations performed on a collection. Collection<T> now includes these new methods:
  • Add(Object[]) (replaces the Add(T) method)
  • Count()
  • CreateIndex(String, Object)
  • DropIndex(String)
  • Find(String)
  • GetOne(Object)
  • Modify(String)
  • Remove(String)
  • RemoveOne(Object)
  • (Bug #31182148, WL #15476)
  • Functionality Added or Changed:
  • The zstd compression algorithm is deactivated in the connector. (Bug #35281610)
  • Asynchronous methods used with classic MySQL protocol connections now are implemented to ensure asynchronous behavior at the level of I/O operations. Previously, some asynchronous methods were executed in a synchronous context. (Bug #70111, Bug #26477952, WL #15484)
  • Connector/NET’s implementation of the authentication_oci_client plugin now permits using a security-token file to support ephemeral key-pair authentication when integration with an external identity provider is needed for classic MySQL protocol connections. In addition, .NET applications now can set the new OciConfigProfile connection option (see General Options) to specify which profile in the configuration file to use for authentication. (WL #15489)
  • Bugs Fixed:
  • Connector/NET API member documentation was incomplete. (Bug #34975410, Bug #35141281)
  • When Connector/NET inserted multiple rows using a single MySqlCommand object, the MySqlCommand.LastInsertedId property returned the ID of the first row that was inserted rather than the last row. (Bug #109683, Bug #34993798)
  • A valid query formatted with tabs or new lines could return an invalid syntax error. (Bug #95226, Bug #29722378)

New in MySQL Connector/NET 8.0.32 (Jan 26, 2023)

  • Functionality Added or Changed:
  • Removed distutils support, which is deprecated as of Python 3.10 and removed in Python 3.12.
  • Adopted type hint enforcement for function and class attributes with mypy; this is compliant with PEP 8 for module mysql.connector. The integration includes a git pre-commit hook for mypy.
  • On Windows, added a kerberos_auth_mode connection option that's set to either "SSPI" (default) or "GSSAPI". This allows choosing between SSPI and GSSAPI at runtime for the authentication_kerberos_client authentication plugin on Windows. Previously, only the SSPI mode was supported on Windows. For general usage information, see Kerberos Pluggable Authentication. This connection is ignored on other platforms, such as Linux, as they only support GSSAPI.
  • Limitation: GSSAPI can't be used with the pure Python implementation on Windows using authentication with a username and password, a limitation with the C library used by the python-gssapi package used by the pure Python implementation of Connector/Python.
  • Bugs Fixed:
  • Using USE_TZ=True in the Django settings would raise this exception: ValueError: Not naive datetime (tzinfo is already set).
  • Removed debug messages that showed authentication data. (Bug #34695103)
  • Updated the protobuf version requirement to version >= 3.11.0, <=3.20.3.
  • Connecting to MariaDB could fail with an unsupported character set because the default MySQL character collection is MySQL 8.0 specific. Now the 5.7 character set is used by default, but is switched to a 8.0 character set if the queried server is version 8.0.
  • Incorrect MySQLCursor.statement values were returned with cursor.execute(query_string, multi=True) under the following conditions: The query string contained two or more queries seperated by a semicolon, and the non-first query used a literal or identifier containing either an odd number of backticks, quotes, or double quotes.
  • On Windows, changed the security support provider (SSP) from Kerberos to Negotiate. Using Negotiate will then select either Kerberos or NTLM as the SSP.
  • On Windows, the Connector/Python MSI did would not detect and install with Python 3.11. The workaround is to use pip install mysql-connector-python instead.
  • When using a prepared cursor, if a datetime column contained 00:00:00 as the time, a Python date object was returned instead of datetime.
  • The MySQLCursor.executemany() method failed to batch insert data since the regular expression (RE) sentinel did not detect batch cases correctly; this meant using the one-on-one insert instead, which led to decreased performance.
  • Added a new init_command connection option; an SQL query that's immediately executed after the connection is established.
  • Russian characters were not handled correctly by the c-ext version's X DevAPI driver. String values are now encoded to their byte string representation before being sent to protobuf.
  • When fetching results from a prepared cursor using the pure Python implementation, it would fail if the VARBINARY column contained bytes that could not be decoded. The bytes are now returned if they cannot be decoded.
  • Fixed multiple reference leaks and removed redundant code.
  • The cursors (both pure and c-ext versions) uses a single SELECT query to retrieve procedure result parameters after a procedure call; but one SET call was used per parameter when setting the input parameters. This was optimized to always use a single SET call for one or multiple parameters.
  • Improved warning handling throughout the connector.
  • Added a new MySQLCursorPreparedDict class option that is similar to MySQLCursorPrepared; the difference is that the former returns a fetched row as a dictionary where column names are used as keys while the latter returns a row as a traditional record (tuple).
  • Enable the use of dictionaries as parameters in prepared statements using the '(param)s' format as placeholders.
  • Using MySQLConverter.escape() on datetime objects raised this error: TypeError: an integer is required. Now it does not attempt to escape values that are not bytes or string types.
  • Not all parameters were added to the INSERT statement when using INSERT IGNORE with cursor.executemany().

New in MySQL Connector/NET 8.0.30 (Jul 26, 2022)

  • Deprecation and Removal Notes
  • Functionality Added or Changed
  • Bugs Fixed

New in MySQL Connector/NET 8.0.25 (Jul 20, 2021)

  • This release contains no functional changes and is published to align the version number with the MySQL Server 8.0.25 release.

New in MySQL Connector/NET 8.0.24 (Apr 20, 2021)

  • Bugs Fixed:
  • If a prepared statement had no parameters, Connector/NET included in the COM_STMT_EXECUTE packet structure a byte corresponding to new-params-bound-flag instead of sending the byte only when the number of parameters was greater than zero. (Bug #32208427)
  • Incomplete validation limited the expected range of values that a stored procedure with a parameter of type Boolean could assign using the MySqlParameter.MySqlDbType property. (Bug #32066024, Bug #101302)
  • Stronger validation was applied to information contained in the certificate store for connections made using SslMode. (Bug #31954655)
  • A connection timeout was added to prevent the MySqlConnection.Open method from waiting indefinitely for a response after MySQL Router restarted unexpectedly. (Bug #31945397, Bug #100692)
  • A cast made with the wrong data type during a valid EF Core operation returned an exception. (Bug #31860492, Bug #100773)
  • Connector/NET used the value of -1 internally to ensure that a parameter without an index was added to the end of the parameter list. However, if an index with an actual value of -1 was passed in, the collection was interpreted as having no index and the argument did not generate an out-of-range exception. (Bug #31754599, Bug #100522)
  • Without validation, an underlying 64-bit enumeration value passed in as a MySQL command parameter defaulted to type Int32 and produced an overflow exception. (Bug #25467610, Bug #84701)

New in MySQL Connector/NET 6.10.8 (Aug 16, 2018)

  • Functionality Added or Changed
  • Optimistic locking for database-generated fields was improved with the inclusion of the [ConcurrencyCheck, DatabaseGenerated(DatabaseGeneratedOption.Computed)] attribute. Thanks to Tony Ohagan for the patch. (Bug #28095165, Bug #91064)
  • All recent additions to .NET Core 2.0 now are compatible with the Connector/NET 6.10 implementation.
  • With the inclusion of the Functions.Like extended method, scalar-function mapping, and table-splitting capabilities, Entity Framework Core 2.0 is fully supported.
  • Bugs Fixed
  • EF Core: An invalid syntax error was generated when a new property (defined as numeric, has a default value, and is not a primary key) was added to an entity that already contained a primary-key column with the AUTO_INCREMENT attribute. This fix validates that the entity property (column) is a primary key first before adding the attribute. (Bug #28293927)
  • EF Core: The implementation of some methods required to scaffold an existing database were incomplete. (Bug #27898343, Bug #90368)
  • The Entity Framework Core implementation did not render accented characters correctly on bases with different UTF-8 encoding. Thanks to Kleber kleberksms for the patch. (Bug #27818822, Bug #90316)
  • The Microsoft.EntityFrameworkCore assembly (with EF Core 2.0) was not loaded and the absence generated an error when the application project was built with any version of .NET Framework. This fix ensures the following support:
  • EF Core 1.1 with .NET Framework 4.5.2 only
  • EF Core 2.0 with .NET Framework 4.6.1 or later
  • (Bug #27815706, Bug #90306)
  • Attempts to create a new foreign key from within an application resulted in an exception when the key was generated by a server in the MySQL 8.0 release series. (Bug #27715069)
  • A variable of type POINT when used properly within an application targeting MySQL 8.0 generated an SQL syntax error. (Bug #27715007)
  • The case-sensitive lookup of field ordinals was initialized using case-insensitive comparison logic. This fix removes the original case-sensitive lookup. (Bug #27285641, Bug #88950)
  • The TreatTinyAsBoolean connection option was ignored when the MySqlCommand.Prepare() method was called. (Bug #27113566, Bug #88472)
  • The MySql.Data.Types.MySqlGeometry constructor called with an array of bytes representing an empty geometry collection generated an ArgumentOutOfRangeException exception, rather than creating the type as expected. Thanks to Peet Whittaker for the patch. (Bug #26421346, Bug #86974)
  • Slow connections made to MySQL were improved by reducing the frequency and scope of operating system details required by the server to establish and maintain a connection. (Bug #22580399, Bug #80030)
  • All columns of type TINYINT(1) stopped returning the expected Boolean value after the connector encountered a NULL value in any column of this type. Thanks to David Warner for the patch. (Bug #22101727, Bug #78917)

New in MySQL Connector/NET 8.0.11 (Apr 30, 2018)

  • Functionality Added or Changed:
  • X DevAPI: Connector/Net now supports the NOWAIT and SKIP_LOCKED locking options introduced in the MySQL 8.0 release series (see SELECT Syntax). The following changes were made to the Connector/Net API:
  • The LockContention enumeration (with values Default=0, NoWait=1 and SkipLocked=2) was added. The Default enumeration member represents the previous behavior of waiting for the row locks to be released.
  • The existing LockShared() and LockExclusive() method signatures were modified to include the new LockContention parameter. Both methods are members of the MySqlX.XDevAPI.CRUD.FindStatement and MySqlX.XDevAPI.Relational.TableSelectStatement classes.
  • X DevAPI: Previously, when documents without an _id attribute were added to a collection, Connector/Net automatically generated IDs for them. Now the server generates the _id attribute, unless a document already contains one. The generated IDs resulting from a document-add operation can be obtained using the new Result.GeneratedIds property, which returns a list
  • This capability requires a MySQL 8.0 GA server. If the server does not support document ID generation, the document-add operation returns an error indicating that document IDs were missing
  • Incompatibility: The GeneratedIds property replaces the DocumentId and DocumentIds properties, which are now removed
  • X DevAPI: Support for the SHA256_MEMORY authentication mechanism was added to enable non-PLAIN insecure connections (without SSL) for user accounts with caching_sha2_password, which is the default authentication plugin introduced in the MySQL 8.0 release series. The changes related to this support include:
  • New synonyms for the auth connection string option: authentication and authentication mode (see General Options).
  • A new authentication mode for the MySqlAuthenticationMode enumeration: SHA256_MEMORY. In addition, the Default member now has a new synonym: Auto=0.
  • A new class: MySql.Data.MySqlClient.Authentication.Sha256MemoryAuthenticationPlugin.
  • Support was added for the new caching_sha2_password padding mechanism introduced in the MySQL 8.0 release series. The new padding mechanism is enabled when all of the following conditions apply:
  • The user account is set with the caching_sha2_password authentication plugin.
  • SSL is disabled explicitly (SslMode=none).
  • The AllowPublicKeyRetrieval connection option is enabled (AllowPublicKeyRetrieval=true).
  • When enabled, the new padding mechanism is used to encode the password during RSA key encryption, which applies the correct padding to match the server.
  • Bugs Fixed:
  • Attempting to open the MySQL Web Configuration Tool, with Connector/Net and MySQL for Visual Studio prerequisites installed properly, displayed an error message instead of opening the tool. (Bug #27457398, Bug #88544)
  • MySQL Installer could not be installed with NuGet packages from Microsoft Visual Studio 2015. (Bug #27251839, Bug #88838)
  • When a decimal column was defined with a scale of zero, such as DECIMAL(8, 0), the value of the NumericPrecision field returned by the MySqlDataReader.GetSchemaTable method was lower by one. For example, it returned 7 instead of 8 as expected. (Bug #26954812, Bug #88058)
  • The data table returned by the MySqlDataReader.GetSchemaTable method had an inaccurate value of zero assigned to the ColumnSize field for LONGTEXT and LONGBLOB data types, and also indicated that the IsLong field value was false when it should have returned true. (Bug #26876592, Bug #87876)
  • The MySqlDataReader.GetSchemaTable method returned different column-size values when used with different character sets. (Bug #26876582, Bug #87868)
  • Support for making a secure connection to a server configured to use TLSv1.2 was limited by external factors. (Bug #25689154)
  • Connection strings that included TLS/SSL connection parameters in URI type-string format generated an exception instead of making a connection with the X Protocol. (Bug #24510329)
  • Attempting to generate an Entity Framework model from a MySQL 5.7 database using either EF5 or EF6 produced an exception that prevented the operation from generating the expected model. (Bug #22173048, Bug #79163)

New in MySQL Connector/NET 6.9.9 (Jul 4, 2016)

  • Functionality Added or Changed:
  • Added TLS support for TLSv1.1 and TLSv1.2 when connecting to MySQL Server 5.7.
  • Bugs Fixed:
  • Improvements were made to how the connector handles aborted connections.
  • With Entity Framework 6, building a table with a primary key would not enclose the key name in quotes, which caused a syntax error.
  • The connector was not disposing the transaction returned by DBContext.Database.BeginTransaction() when exiting a using code block.
  • The connector did not attempt to enumerate stored procedures via mysql.proc(). Instead it looked up stored procedures in INFORMATION_SCHEMA.ROUTINES. This could have led to performance degradation in certain scenarios. (Bug #20960373,

New in MySQL Connector/NET 6.9.8 (Oct 21, 2015)

  • Generated columns (GENERATION_EXPRESSION) are now supported, a feature added in MySQL 5.7.6.
  • The JSON type is now supported, a type that was added in MySQL 5.7.8.

New in MySQL Connector/NET 6.9.7 (Aug 5, 2015)

  • Connections to MySQL server 5.7 now default to using SSL.

New in MySQL Connector/NET 6.9.6 (Mar 26, 2015)

  • Fix for Incorrect query result with Entity Framework 6 (MySql bug #74918, Oracle bug #20129927).
  • Fix for GetTimeZoneOffset to use date and time to calculate timediff (MySQL Bug #74905, Oracle Bug #20065691).
  • Fix for MySqlSimpleMembershipProvider keeps database connections open on some operations (MySQL Bug #74662, Oracle Bug #20109419)
  • Fix for Any Call to RoleExists() returns true whether or not the role exists (MySql bug #75397, Oracle bug #20325391).
  • Fix for all dateTimes set as UTC Kind (MySQL Bug #74134, Oracle Bug #20200662).
  • Fix for Invalid SQL query when eager loading two nested collections (MySQL Bug #70941, Oracle bug #18049862).
  • Fix for chinese characters used in the connection string when connecting to MySql Server (MySQL Bug #70041, Oracle Bug #18141356).

New in MySQL Connector/NET 6.9.5 (Mar 26, 2015)

  • Disabled installation on-demand in Installer (Oracle Bug #19670596).
  • Fix for Generated SQL requests column that doesn't exist in LINQ to Entities (MySql bug #72004, Oracle bug #19681348).
  • Fix for MySQL Connector/NET generates incorrect SQL for LINQ 'StartsWith' queries (MySql bug #72058, Oracle bug #19680236).
  • Fix for Exception when using IEnumerable.Contains(model.property) in Where predicate (MySql bug #73643, Oracle bug #19690370).
  • Fix for Generated Sql does not contain ORDER BY statement whose is requested by LINQ (MySql bug #73549, Oracle bug #19698010).
  • Fix for Web providers registration in machine.config (removed v20 suffix) (MySQL Bug #74080, Oracle Bug #19715398)
  • Fix for Error of "Every derived table must have an alias" in LINQ to Entities when using EF6 + DbFirst + View + Take
  • (MySql Bug #72148, Oracle bug #19356006).
  • Fix for 'the method or operation is not implemented' when using linq with orderby (MySQL Bug #70722, Oracle Bug #19681723).
  • Fix for Exception "The given key was not present in the dictionary" when using utf16le charset in a query. (MySql #72737, Oracle Bug #19355906)
  • Fix for Memory leak in a loop opening a connection to the database and executing a command (MySql Bug #73122, Oracle Bug #19467233).
  • Fix for Multiple issues caused by trailing and leading white space character in params using MySql Membership Provider (MySql Bug #73411, Oracle Bug #19453313)
  • Fix for bad assumption leads to modify query adding CALL statement to the beginning of the sql query even when CommandType.Text is specified (MySql Bug #72736, Oracle Bug #19325120).

New in MySQL Connector/NET 6.9.4 (Mar 26, 2015)

  • Added a new plugin for MySql Fabric 1.5 support

New in MySQL Connector/NET 6.9.3 (Mar 26, 2015)

  • Fix for Web Parts Personalization provider
  • Fix for changing the PK between two int columns (MySql Bug #71418, Oracle bug #18923294).
  • Fix for Error when Calling MySqlConnection.GetSchema("PROCEDURES WITH PARAMETERS", ...) (Oracle bug #19285959).
  • Fix for EF provider reports ManifestProviderToken = 5.6 for server 5.7 (Oracle bug #19453814).
  • Fix for Fluent API DbModelBuilder.HasColumnType is ignored in EF6 (Oracle bug #19456229).
  • Fix for Setting a PK GUID identity in Code First in EF6 no longer works in Server 5.7 (Oracle bug #19456452).
  • Non PKs declared as Identity GUID have no GUID autogenerated (Oracle bug #19456415).

New in MySQL Connector/NET 6.9.2 (Mar 26, 2015)

  • Add async/await compatible methods
  • Fix for Unable to read geometry column when it has been set with a SRID value. (MySql Bug #71869, Oracle Bug #19137999)
  • Fix for Exception adding a new column to an existing model as identity and PK fails when applying the migration (MySql Bug #71418, Oracle bug #18923294).
  • Added SiteMap and Personalization configuration web providers to MySql.Web Nuget Package.

New in MySQL Connector/NET 6.9.1 Beta (May 30, 2014)

  • Functionality Added or Changed:
  • Asynchronous methods are now supported.
  • Bugs Fixed:
  • When a client refreshed a web page associated with an expired session and if the ASP.NET project was using , a "duplicate entry" exception was generated from the MySqlSessionProvider. (Bug #18657550, Bug #70409)

New in MySQL Connector/NET 6.9.0 Alpha (May 1, 2014)

  • Added a MySQL Personalization Provider.
  • Added a SiteMap Web Provider.
  • Added a Simple Membership Web Provider.

New in MySQL Connector/NET 6.7.4 (Aug 21, 2013)

  • Fix for Entity Framework when inserts data having Identity columns (Oracle bug #16494585).
  • Fix for Connector/NET cannot read data from a MySql table using UTF-16/UTF-32 (MySql bug #69169, Oracle bug #16776818).
  • Fix for Malformed query in Entity Framework when eager loading due to multiple projections (MySql bug #67183, Oracle bug #16872852).
  • Fix for database objects with 'dbo' prefix when using automatic migrations in Entity Framework 5.0 (Oracle bug #16909439).
  • Fix for bug IIS application pool reset worker process causes website to crash (Oracle bug #16909237, Mysql Bug #67665).
  • Fix for bug Error in LINQ to Entities query when using Distinct().Count() (MySql Bug #68513, Oracle bug #16950146).
  • Fix for occasionally return no data when socket connection is slow, interrupted or delayed (MySql bug #69039, Oracle bug #16950212).
  • Fix for ConstraintException when filling a datatable (MySql bug #65065, Oracle bug #16952323).
  • Fix for Data Provider is not found after uninstalling Mysql for visual studio (Oracle bug #16973456).
  • Fix for nested sql generated for LINQ to Entities query with Take and Order by (MySql bug #65723, Oracle bug #16973939).

New in MySQL Connector/NET 6.6.5 (May 8, 2013)

  • Fix for bug Keyword not supported. Parameter name: AttachDbFilename (Mysql bug #66880, Oracle bug #14733472).
  • Added support to MySql script file to retrieve data when using "SHOW" statements.
  • Fix for Package Load Failure in Visual Studio 2005 (MySql bug #63073, Oracle bug #13491674).
  • Fix for bug "Unable to connect using IPv6 connections" (MySQL bug #67253, Oracle bug #14835718).
  • Added auto-generated values for Guid identity columns (MySql bug #67450, Oracle bug #15834176).
  • Fix for method FirstOrDefault not supported in some LINQ to Entities queries (MySql bug #67377, Oracle bug #15856964).
  • Fix internal bug "Parser cannot recognize row_count in grammar version 5.6" (id task 326).
  • Fixed missing keywords not working as ids (wihout quoting) in parser: value, status, unknown & some unit tests from Arnaud feedback.
  • Fix for Datetime precision doesn't work with code first or model first. (Oracle bug #15972773).
  • Fix for Support for current_timestamp as default for datetime with ef for server 5.6 (Oracle bug #15935094).
  • Adding support for Geometry type. Unit Tests included. Supporting server 5.1 and further.
  • Added support for new connect attributes feature in server 5.6 (Oracle bug #15935112).
  • Added protocol support for password expiration (Oracle bug #15935104).
  • Added to parser missing "alter user ... password expire".
  • Fix for "Debugger error on stored procedure", which is actually a parser bug (parser was expecting decimal both precision & scale), (bug MySql #67975, Oracle bug #16079735).
  • Added support for password hashing with appropriate strength for server 5.6 (Oracle bug #15935128).
  • Added a more friendly message for error when trying to authenticate with old password.

New in MySQL Connector/NET 6.6.4 (May 8, 2013)

  • Fixed Entity Framework + mysql connector/net in partial trust throws exceptions (MySql bug #65036, Oracle bug #14668820).
  • Added support in Parser for Datetime and Time types with precision when using Server 5.6 (No bug Number).
  • Small improvement on MySqlPoolManager CleanIdleConnections for better mysqlpoolmanager idlecleanuptimer at startup (MySql bug #66472 and Oracle bug #14652624).
  • Fix for bug TIMESTAMP values are mistakenly represented as DateTime with Kind = Local (Mysql bug #66964, Oracle bug #14740705).

New in MySQL Connector/NET 6.6.3 (May 8, 2013)

  • Added feature to define initial values for InOut stored procedure arguments.
  • Debugger: Fixed Visual Studio locked connection after debugging a routine.
  • Fix for bug Cannot Create an Entity with a Key of Type String (MySQL bug #65289, Oracle bug #14540202). This fix checks if the type has a FixedLength facet set in order to create a char otherwise should create varchar, mediumtext or longtext types when using a String CLR type in Code First or Model First also tested in Database First. Unit tests added for Code First and ProviderManifest.
  • Fix for bug "CacheServerProperties can cause 'Packet too large' error". The issue was due to a missing reading of Max_allowed_packet server property when CacheServerProperties is in true, since the value was read only in the first connection but the following pooled connections had a wrong value causing a Packet too large error. Including also a unit test for this scenario. All unit test passed. MySQL Bug #66578 Orabug #14593547.
  • Fix for handling unnamed parameter in MySQLCommand. This fix allows the mysqlcommand to handle parameters without requiring naming (e.g. INSERT INTO Test (id,name) VALUES (?, ?) ) (MySQL Bug #66060, Oracle bug #14499549).
  • Fixed end of line issue when debugging a routine.
  • Added validation to avoid overwriting a routine backup file when it hasn't changed.
  • Fixed inheritance on Entity Framework Code First scenarios. Discriminator column is created using its correct type as varchar(128) (MySql bug #63920 and Oracle bug #13582335).
  • Fixed "Trying to customize column precision in Code First does not work" (MySql bug #65001, Oracle bug #14469048).
  • Fixed bug ASP.NET Membership database fails on MySql database UTF32 (MySQL bug #65144, Oracle bug #14495292).
  • Fix for MySqlCommand.LastInsertedId holding only 32 bit values (MySql bug #65452, Oracle bug #14171960) by changing
  • several internal declaration of lastinsertid from int to long.
  • Fixed "Decimal type should have digits at right of decimal point", now default is 2, but user's changes in
  • EDM designer are recognized (MySql bug #65127, Oracle bug #14474342).
  • Fix for NullReferenceException when saving an uninitialized row in Entity Framework (MySql bug #66066, Oracle bug #14479715).
  • Fix for error when calling RoleProvider.RemoveUserFromRole(): causes an exception due to a wrong table being used (MySql bug #65805, Oracle bug #14405338).
  • Fix for "Memory Leak on MySql.Data.MySqlClient.MySqlCommand", too many MemoryStream's instances created (MySql bug #65696, Oracle bug #14468204).
  • Added ANTLR attribution notice (Oracle bug #14379162).
  • Fix for debugger failing when having a routine with an if-elseif-else.

New in MySQL Connector/NET 6.6.2 (May 8, 2013)

  • Parser: Fix for Problems when declaring variables in certain places (wasn't accepting declare var after declare handler in a begin/end block).
  • Parser: Fix for Problems with CHARSET (previously only CHARACTER SET was recognized).
  • Parser: Fix for Parser was not returning table_ref for "replace" parsed statements.
  • Debugger: Fix for "Data is Null" error when debugging a Procedure that reference a trigger that is in a different db than current one
  • Debugger: Added better support for datetime columns, including zeroed columns, Appended "Allow Zero DateTime=true" to the debugger connection string dynamically/
  • Debugger: Fix error when debugging a routine which name was a MySql keyword.
  • Debugger: Fix colorizing the whole line when stepping into a line with several statements defined (only the current statement is colorized now, not the whole line).
  • Debugger: Enabled colorizing (Intellisense) into debugger editor.
  • Debugger: Enabled changing values of locals in a function scope (previously caused deadlock since functions are executed in a transaction in MySql).
  • Debugger: Fix a small issue such that when in a multiple stack frame debug session, clicking in a stack frame other than the current one, was not colorizing correctly.
  • Debugger: Added support for conditional breakpoints
  • Debugger: Added support for pass count breakpoints
  • Debugger: Fixed a bug such that in a multiple callstack scenario, cliking in a stack frame other than the last one, was not updating locals grid.
  • Debugger: Fixed a bug such that when modifying a local variable in a nested scope debug session, the value appear temporarily as "Not implemented interface".
  • Added support for Visual Studio 2012
  • Added Authentication Plugin.

New in MySQL Connector/NET 6.6.1 (May 8, 2013)

  • Debugger: Added Support for row_count() (together with found_rows() & last_insert_id() ).
  • Debugger: Old & new objects are now available to debugger in trigger scope.
  • Debugger: Fixed In case of debugger error (like an already existing table when executing a create table) there was no error reported.
  • Debugger: Implemented Having a better way to generate session variable names for OUT & INOUT args to reduce changes of name collision
  • (Now they are named @dbg_var1, @dbg_var12, etc.).
  • Debugger: Fixed Replace & load dont have triggers instrumented (replace's triggers are now instrumented, load data is not supported in stored routines by server anyway).
  • Debugger: Fixed Routines without main begin/end block in their definition won't be instrumented correctly.
  • Debugger: Added support for Stepping into triggers & functions.
  • Debugger: Added a more friendly message when debugger is already attached.
  • Debugger: Added code to properly finish the debugger in case of syntax not supported by parser.
  • Debugger: Added fully qualified columns of debug table queries (to avoid conflicts like user routine declaring an arg named 'id').
  • Debugger: Fixed to start debug routine when the database password is not saved.
  • Debugger: Added Type column to routine arguments dialog.
  • Debugger: Fixed "Cannot take lock1" error when an invalid routine argument is sent.
  • Debugger: Fixed "No source available" error when debugging a routine with a handler defined in a single line.
  • Debugger: Fixed "The given key is not present in the dictionary error." an unlikely race condition solved by moving code to check flags to inside the debugger critical section and making volatile both flags.
  • Debugger: Fixed Sometimes debugger hanged when Shift+F5 was used to stop a debug session.
  • Debugger: Fixed cannot evaluate or change session variables in the debugger.
  • Debugger: Added support for othe steppings, Step Over (F10) & Step Out (Shift + F11) now work correctly.
  • Debugger & Intellisense: Parser is now fully compliant with MySql syntax 5.0, 5.1, 5.5 & 5.6.
  • Intellisense: Fixed an issue with Intellisense, such that in server explorer was only working for new routines, not for existing ones.
  • Fixed deleting a user profile using Profile provider (MySQL bug #64470, Oracle bug #13790123)

New in MySQL Connector/NET 6.6.0 (May 8, 2013)

  • Fix for ArgumentNull exception when using Take().Count() in a LINQ to Entities query (bug MySql #64749, Oracle bug #13913047).
  • Fix for type varchar changed to bit when saving in Table Designer (Oracle bug #13916560).
  • Fix for error when trying to change the name of an Index on the Indexes/Keys editor; along with this fix now users can change the Index type of a new Index which could not be done
  • in previous versions, and when changing the Index name the change is reflected on the list view at the left side of the Index/Keys editor (Oracle bug #13613801).
  • Fix for stored procedure call using only its name with EF code first (MySql bug #64999, Oracle bug #14008699).
  • Fix for List.Contains generates a bunch of ORs instead of more efficient IN clause in
  • LINQ to Entities (Oracle bug #14016344, MySql bug #64934).
  • Fix for performance issue in generated EF query: .NET StartsWith/Contains/EndsWith produces MySql's locate instead of Like (MySql bug #64935, Oracle bug #14009363).
  • Fix for script generated for code first contains wrong alter table and wrong declaration for byte[] (MySql bug #64216, Oracle bug #13900091).
  • Fix for bug MySqlDateTime when using milliseconds precision minor than 6 in the column definition. (MySql #64867 Oracle bug #13881444 ).
  • Fix and code contribution for bug Timed out sessions are removed without notification which allow to enable the Expired CallBack when Session Provider times out any session (bug MySql #62266 Oracle bug # 13354935)
  • Entity Framework Code First Enable-Migrations new feature in version 4.3.1.
  • First commit that includes:
  • New Class MySqlMigrationSqlGenerator that generates mysql statements for Migration Operations. Still has some improvements to be done. (Check TODO Notes included).
  • New Class MySqlConnectionFactory.cs used in configuration for Enable Migrations
  • Changes in ProviderManifest.cs: Added validation in public override TypeUsage GetEdmType(TypeUsage storeType) to use a different constructor for CreateTypeUsage when Primitive type is String.
  • Changes in ProviderServices.cs: Changed visibility in method GetColumnType(TypeUsage type) from private to internal.
  • Added reference in MySql.Data.Entity.csproj to include new namespace for Migrations.
  • Initial version of Debugger of MySql stored routines & its Visual Studio integration (worklogs #6270 and #6245).
  • Fix for Exception thrown when using cascade delete in an EDM Model-First in Entity Framework (Oracle bug #14008752, MySql bug #64779).
  • Fix for Session locking issue with MySqlSessionStateStore (MySql bug #63997, Oracble bug #13733054).
  • Fixed deleting a user profile using Profile provider (MySQL bug #64470, Oracle bug #13790123)