MySQL Connector/NET Release Notes

2.9 Changes in MySQL Connector/NET 8.0.10 (2018-01-30, Release Candidate)

Functionality Added or Changed

  • The .NET Core 2.0 implementation now supports the following connection-string options: AutoEnlist, InteractiveSession, Logging, Replication, and UseUsageAdvisor. For more information about the options, see General Options. (Bug #27297337)

  • X DevAPI: In the process of refining the definition of the X DevAPI to cover the most relevant usage scenarios, the following API components have been removed from the X DevAPI implementation for MySQL Connector/NET:

    • API components that support session configurations

      The MySqlX.XDevAPI.Config namespace and all members of the namespace.

    • API components that support views

      CreateView(), DropView(), and ModifyView() methods from the MySqlX.XDevAPI.Schema class.

      ViewAlgorithm, ViewSqlSecurityEnum, and ViewCheckOptionEnum enumerations from the MySqlX.DataAccess namespace.

      Note

      The Table.IsView property remains available for query operations.

  • Support for .NET Core 2.0 and .NET Standard 2.0 has been added (.NET Core 1.1 support continues). With .NET Core 2.0, most of the common ADO.NET classes are available for use, such as:

    • System.Data.DataTable, System.Data.DataColumn, and System.Data.DataRow

    • System.Data.DataSet

    • System.Data.Common.DataAdapter

  • Support for Entity Framework Core 2.0 has been added (Entity Framework 1.1 support continues). Currently, the MySQL Connector/NET implementation excludes the following 2.0 features:

    • Modeling: table splitting, owned types, model-level query filters, database scalar function mapping, self-contained type configuration for code first.

    • High performance: DbContext pooling and explicitly compiled queries.

    • Change tracking: attach can track a graph of new and existing entities.

    • Query: improved LINQ translation, group-join improvements, string interpolation in FromSql and ExecuteSqlCommand, new EF.Functions.Like().

    • Database management: pluralization hook for DbContext scaffolding.

    • Others: only one provider per model, consolidated logging and diagnostics.

  • X DevAPI: MySQL Connector/NET now supports setting and releasing named transaction savepoints, which can be assigned a name explicitly or by default using the savepoint_(uuid) format. In addition, a transaction can be rolled back to a named savepoint.

    New methods were added to the MySqlX.XDevAPI.BaseSession class to implement corresponding SQL statements using the X Protocol:

    • SetSavepoint() and SetSavepoint(name) correspond to the SAVEPOINT statement.

    • ReleaseSavepoint() corresponds to the RELEASE SAVEPOINT statement.

    • RollbackTo() corresponds to the ROLLBACK TO statement.

    All errors generated by MySQL when one of the new methods is called will be returned by MySQL Connector/NET.

  • X DevAPI: The MySqlX.XDevAPI.CRUD.ModifyStatement.Patch method was added to enable the inclusion of JSON-like objects within Collection.Modify() operations that describe the changes to apply to all documents matching the condition.

  • Support for the caching_sha2_password authentication plugin through the classic MySQL protocol was added. Support through the X Protocol is limited to secure connections only (sslmode=required). Caching SHA-2 pluggable authentication offers faster authentication than basic SHA-256 authentication.

    A new and related connection option, AllowPublicKeyRetrieval, was also added.

  • X DevAPI: The MySqlX.XDevAPI.Collection.CreateIndex method implementation was modified to enable the inclusion of a JSON document that defines the index to be created. Index-definition details can include the fields affected, data types, and so on.

Bugs Fixed

  • X DevAPI: When the PLAIN authentication option was used to make a secure connection, the database name was excluded from the authenticating data and the database value was not set. PLAIN authentication is the default option for connections made with TLS or Unix Sockets. (Bug #27098974, Bug #88427)

  • Boolean values within a JSON document were improperly stored as strings. (Bug #26837112)

  • Invoking the MySql.Web.Security.MySqlWebSecurity.CreateUserAndAccount method with valid arguments, including additionalUserAttributes as an object with key/value pairs, returned an out-of-range exception. Thanks to Stein Setvik for contributing to the fix. (Bug #25046364)

  • When a valid document was passed to the SetValue method as a DbDoc object, the content within the document was removed. (Bug #24397888)

  • The default character set and encoding were not set properly when making a connection to MySQL 5.6 and 5.7 servers configured to use the utf8 character set. (Bug #23257011)

  • After an index was created in MySQL 5.7.12 or higher, an exception prevented the inclusion of additional objects. (Bug #23016623)

  • SSL connections made to a single MySQL instance could not be disconnected and created repeatedly without restarting the client application to clear the half-open sockets. (Bug #20393654, Bug #75022)