Utilizzare EF6 con Mysql in Visual Studio 2017

Ritengo doveroso condivide la corretta procedura di configurazione di Visual Studio 2017 per permettere il funzionamento di Entity Framework 6 con Mysql (fonte https://stackoverflow.com/questions/28241500/cant-create-entity-data-model-using-mysql-and-ef6

  1. Install "MySQL for Visual Studio" v2.0.5 CTP (MySQL for Visual Studio). Note: Install MySQL for Visual Studio before Connector/NET.

  2. Install "Connector/NET" v6.9.10 (Connector/Net) Note: I tried using Connector/NET v6.8, v6.10 and v8 first, but none of them worked with Visual Studio 2017.

  3. Create new Visual Studio Professional 2017 project.

  4. Download and Install "EntityFramework" v6.2.0 through NuGet, by going to Project Tab/Manage NuGet Packages/Browse -> Entity Framework.

  5. Add references to C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.dll and C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.Entity.EF6.dll; by Right Clicking over References inside Solution Explorer and selecting Add Reference/Browse ->Browse button.

  6. Add MySQL EF6 provider info inside App.config under entity framework providers as follow:

    <entityFramework>
           <providers>
             <provider invariantName="MySql.Data.MySqlClient"
                  type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
           </providers>
    </entityFramework>

     

  7. Rebuild project by going to Build tab/Rebuild ProjectName.
 

Cambiare la root password in MySQL

Nel caso in cui fosse necessario modificare la root password di MySQL, ovvero la pw dell'utente root@localhost, vi consiglio di seguire le seguenti istruzioni:

1) arrestare il servizio MySQL;
2) salvare la seguente query
SET PASSWORD FOR root@localhost=PASSWORD('newpass');
dove "newpass" è la nuova password, nel file di testo C:\mysql-init.txt;
3) aprire cmd con privilegi amministrativi e portarsi nella directory BIN della cartella di installazione di MySQL digitando (ad esempio)
cd C:\Program Files\MySQL\MySQL Server 5.6\bin
4) eseguire l'istruzione
mysqld with ---init-file=C:\\mysql-init.txt

5) riavviare il servizio MySQL