MySQL Connector/NET Release Notes

2.16 Changes in MySQL Connector/NET 8.0.22 (2020-10-19, General Availability)

Deprecation and Removal Notes

  • The following synonyms for the Server connection string option were deprecated in Connector/NET 8.0.22 and removed in 8.0.23: address, addr, and network address. (Bug #31248601)

Functionality Added or Changed

  • Revisions to the MySql.Data.EntityFrameworkCore namespace reduced the number of public classes. (Bug #31353208)

  • Previously, the client-side mysql_clear_password authentication plugin was not supported. Now, it is permitted to send passwords without hashing or encryption by using mysql_clear_password on the client side together with any server-side plugin that needs a clear text password, such as for LDAP pluggable authentication. Connector/NET returns an error if the mysql_clear_password plugin is requested, but the connection is neither encrypted nor using Unix domain sockets. For usage information, see Client-Side Cleartext Pluggable Authentication. (Bug #30340510, WL #14002)

  • For enhanced security of the existing AllowLoadLocalInfile connection string option, a single folder that is safe to upload files from now can be specified with the new AllowLoadLocalInfileInPath option (see Options for Classic MySQL Protocol Only). (WL #14093)

  • Connector/NET now supports Entity Framework 6.4, which extends the compatibility of the provider to include the Linux and macOS platforms when used with the Universal Windows Platform (UWP) .NET implementation (see Entity Framework 6 Support). Connector/NET continues to support the .NET Framework implementation of Entity Framework. (WL #14076)

  • Connections made using the MySQL Enterprise Edition SASL LDAP authentication plugin now are supported on Windows and Linux, but not on macOS. Connector/NET implements the SCRAM-SHA-1 authentication method of the SASL authentication protocol. (WL #14116)

  • The new compression-algorithms connection option sets the order by which supported algorithms are negotiated and selected to send compressed data over X Protocol connections (see Options for X Protocol Only). (WL #14001)

  • In addition to providing continued support for .NET Core and .NET Framework, Connector/NET now includes support for the new .NET 5.0 framework. Compatibility testing was performed with the preview versions of .NET 5.0 and Visual Studio to encourage the efforts of early adopters. Among other capabilities, .NET 5.0 offers uniform runtime behaviors and developer experiences by taking the best of .NET Core, .NET Framework, Xamarin, and Mono. (WL #14044)

Bugs Fixed

  • Procedure names were malformed before being sent to the server when the database name was not specified in the connection string. (Bug #31669587, Bug #100306)

  • Microseconds were deserialized incorrectly when MySqlCommand.Prepare() was called for a statement that selects a TIME(n) column, resulting in a loss of trailing zeros in the returned result. Now, the MySqlTime class calculates ticks, rather than converting the microseconds to a string. (Bug #31623730, Bug #100218)

  • MySqlConnection.GetSchema("Procedures") returned the literal string System.Byte[] as the value of the ROUTINE_DEFINITION column, rather than the actual routine definition. (Bug #31622907, Bug #100208)

  • Valid query parameters of type DateTime were misinterpreted as a string values. (Bug #31598178, Bug #100159)

  • A mismatch of data types between the parameter of a stored procedure and the corresponding MySqlParameter when the Prepare() method was called did not generate an exception. (Bug #31458774, Bug #99793)

  • An SQL syntax error was reported on valid code for creating a dynamic dropdown list from data in an ASP.NET Core application. (Bug #31337609, Bug #99523)

  • Entity Framework code-first migration omitted the schema attribute that was assigned to an entity, although the automatic migration appeared to generate a table with the proper schema value at first. Subsequent queries using the schema name returned errors. (Bug #31323788, Bug #94343)

  • The mapping from the TINYINT and BIT data types to BOOLEAN was not performed as expected when scaffolding was used. (Bug #31304070, Bug #99419)

  • The Entity Framework Core migration script replaced NULL with NOT NULL on a column in the migrated table when the MaxLength attribute of the property for it was changed in the model. (Bug #31070175, Bug #96913)

  • The Ubiety.Dns.Core.dll binary included with the MySQL.Data NuGet package was built in debug mode, which prevented the publishing of applications to Microsoft Store. (Bug #31061034, Bug #98955)

  • An application using Entity Framework code-first migration without the default system decimal separator, the period character (.), could not generate a new database. Now, setting the system decimal separator to a different character is permitted. (Bug #30965702, Bug #94358)

  • Every column of type CHAR(36) was interpreted as a GUID, which could cause the first query made by a restarted application using the MySQL.Data package to return an exception. This fix introduces a dedicated format (8-4-4-4-12) to interpret the column type properly. (Bug #29963760, Bug #93399)

  • Connector/NET code did not read from the MySql.Data.Properties.ReservedWords.txt assembly resource consistently and could return an incomplete set of reserved keywords. (Bug #27536342, Bug #89639)

  • No error occurred when MySqlCommand.CommandTimeout was set to a negative number, however, subsequently setting it to a positive number returned an exception. (Bug #26574860, Bug #87316)

  • The TcpClient implementation limited some of the connection options when an external wrapper from a Windows Forms application made the connection. This fix enables the related external destructor to be called without returning an error. (Bug #26427802, Bug #82810)

  • An exception was returned in debug mode after a command was canceled within a connection that was not null when CancelQuery was called. Thanks to Denis Yarkovoy for the improved validation patch. (Bug #26362494, Bug #86836)

  • The DbContext.Database.Migrate() method did not succeed because the __efmigrationshistory table was not found. This fix modifies the method that validates the existence of the table. (Bug #25901276, Bug #85902)

  • When a parameter value of zero was passed to the MySqlParameter constructor, Connector/NET used the MySqlDbType enumeration by default for type mapping and changed the value to NULL. This fix maps the default type to int32. (Bug #25573071, Bug #85027)

  • Entity Framework code-first migration excluded the length specifier in the resulting binary columns. (Bug #23171349, Bug #81179)

  • Create Table statements generated with Entity Framework were missing some of the semicolons, which caused MySQL Server to return errors. (Bug #22669961, Bug #80159)