Enable Entity Framework 6 for MySql (C#) in WinForms of Microsoft Visual Studio 2013 Enable Entity Framework 6 for MySql (C#) in WinForms of Microsoft Visual Studio 2013 mysql mysql

Enable Entity Framework 6 for MySql (C#) in WinForms of Microsoft Visual Studio 2013


First of all, we don't even need to install the mysql-installer-community-5.7.3.0-m13.msi.

  1. Install the latest mysql-visualstudio-plugin
  2. Install the latest mysql-connector-net
  3. New C# .Net 4.5 Framework WinForms (for 4.0 it should work based on Does Entity Framework 6 support .NET 4.0? )
  4. Install 4 Nuget Packages (follow sequence, if you install Mysql.Data.Entities before EntityFramework, it will resolve dependency and install EntityFramework 6.0.2 but what we need is EntityFramework 6.1.0)

EntityFramework

Mysql.Data

Mysql.Data.Entities

Mysql.Web

5.If you have tag entityFramework in App.config, please comment it and insert new tag entityFramework in App.config after tag startup

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

6.Add ADO.NET Entity Data Model (as mentioned in question)

7.After Entity Connection string is generated (as mentioned in question) and Tick Save entity connection settings in App.Config as then click Next

8.Choose Your Database Object and Settings (Tables, Views, or Stored Procedures and Functions) (Don't have "Which version of Entity Framework do you want to use?" because I have only one Entity Framework 6.0 provider so direct skip the selection if my only provider is valid)

9.Finish

Congratulations ^^

By the way, you may need to add the .dll files

  • MySql.Data.dll
  • MySql.Data.Entity.EF6.dll
  • MySql.Web.dll

inside this folder

C:\Program Files\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5 (32bit windows)

C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5 (64bit windows)

as your project reference for further EF6 functions.


I followed the instructions given by V-Shy and was having the same problem as LaRae White with the wizard shutting down on me. I'm running VS2015 and had just used the MySql installer to update to MySQL for Visual Studio v1.2.6 and Connector/NET v6.9.8.

What I eventually did to get it to work was this:

  1. Uninstall all the packages I had previously installed to solve this issue (EntityFramework, Mysql.Data, Mysql.Data.Entities, Mysql.Web)
  2. Added the following references found in C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5 manually: MySql.Data.dll, MySql.Data.Entity.EF6.dll, and MySql.Web.dll

I hope that helps someone out.


I spend entire day figuring out how to solve this problem and nothing helps.Apparently i figure out 1 things about which people don't mention

In the model.edmx properties there is entire "DDL Generation Template", by default it set to "SSDLToSQL10.tt (VS)" but need to be set to "SSDLToMySQL.tt (VS)"

What is more it was also producing an error:

Running transformation: System.NullReferenceException: Object reference not set to an instance of an object.
bla bla bla
line 93 c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen\SSDLToMySQL.tt

What leads me to the official bug in "MySQL for Visual Studio 1.1.3" which will be fixed in next build 1.1.4 which is not available so far.

However there is workaround fix:
Overwrite the "MySql.Data.Entity.EF6.dll" in
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies
by file from NET Connector in
C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\