Dear MySQL users,
MySQL Connector/NET 8.0.11 is the first general availability release of
Connector/NET to add support for the new X DevAPI. The X DevAPI
enables application developers to write code that combines the strengths
of the relational and document models using a modern, NoSQL-like syntax
that does not assume previous experience writing traditional SQL.
To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/index.html. For more
information about how the X DevAPI is implemented in Connector/NET, see
http://dev.mysql.com/doc/dev/connector-net. Users relying on NuGet packages need to install the MySql.Data package to be able to use the X DevAPI.
Please note that the X DevAPI requires at least MySQL Server version
5.7.12 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
To download Connector/NET 8.0.11, see
Installation instructions can be found at https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html.
Changes in MySQL Connector/NET 8.0.11 (2018-04-19) 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 (http://dev.mysql.com/doc/refman/5.7/en/select.html)). 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. + Usage examples: // Default behavior - waits for the row locks to release LockShared() LockShared(LockContention.Default) LockExclusive() LockExclusive(LockContention.Default) // New - fails if the rows are locked LockShared(LockContention.NoWait) LockExclusive(LockContention.NoWait) // New - succeeds excluding the locked rows from the result LockShared(LockContention.SkipLocked) LockExclusive(LockContention.SkipLocked) * 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 (http://dev.mysql.com/doc/connector-net/en/connector-net-connection-options. html#connector-net-connection-options-general)). + 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.Sha256MemoryAu thenticationPlugin. * 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)