MySQL is a Database Management System from Oracle that currently supports Entity Framework through the MySQL ADO.NET Connector a fully-managed ADO.NET driver for MySQL.. I will go through steps in setting up MySQL with Entity framework 6.1.+ Using Visual Studio.
This Tutorial also works with MariaDB.
PREREQUISITES
- Visual Studio
 Download Free Community Version Here (https://www.visualstudio.com/vs/community/)
- MySQL Server
 Download Here (https://dev.mysql.com/downloads/installer/)
- ADO.NET Driver for MySQL (Connector/NET) Download Here (https://dev.mysql.com/downloads/connector/net/)
- Microsoft Entity Framework 6.1.+
Adding Entity framework
Download Entity Framework From Nugget in Visual Studio,this will automatically reference all needed Microsoft Entity Framework Assemblies in your project
-OR
Run this command in Package Management Console to download Entity Framework
 Pm> Install-Package EntityFramework
Reference MySQL Assemblies (NB.These Assemblies are Available after installing the MYSQL Connector for .Net you can also get them on Nuget)
- MySQL.Data
- MySQL.Data.Entity
Setting Up The Connection String in your Web.Config or App.Config 
Set connection string to your existing MySql Database
<connectionStrings>
 <add name="SellRightDb" providerName="MySql.Data.MySqlClient"connectionString="server=localhost;userid=[your userid];password=[your password]database=sellright;persistsecurityinfo=True"/>
 </connectionStrings>
Entity Framework Configuration
Configuring MySQL to use Entity Framework add the block below to your Web.config or App.config
 <entityFramework>
 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
 <providers>
 <provider invariantName="MySql.Data.MySqlClient"
 type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
 <provider invariantName="System.Data.SqlClient"
 type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
 </providers>
 </entityFramework>
Create A Simple Model Class
 class Product
 {
 public int ProductId { get; set; }
 public string ProductName { get; set; }
 public double Price { get; set; }
 public int Quantity { get; set; }
 }
Creating Your DBContext Class
Import Namespaces
using System.Data.Entity;
using MySql.Data.Entity;
Configuring your Db Contex Class
// Code-Based Configuration and Dependency resolution
 [DbConfigurationType(typeof(MySqlEFConfiguration))]
 class SellRightContext :DbContext
 {
 
 //Add your Dbsets here
 public DbSet<Product>Products { get; set; }
 public SellRightContext()
 
 //Reference the name of your connection string
 : base("SellRightDb")
 {
 }
 }`
NB.
Enable Code First Migration
PM> Enable-Migrations
Add Code First Migration
PM> Add-Migration [Give Your Migration Settings A name]
Update Database (Specify Verbose to see the SQL Querry that is being executed)
PM> Update-Database -Verbose
You should see your Product Table Created in Your MySql Server
If you get a System.TypeLoadException when adding a migration, you should try to install a older version of the MySQL packages.
To do so, follow these steps:
- Open the Package Manager Console: Tools > NuGet Package Manager > Package Manager Console
- Uninstall the current Packages:
PM> Uninstall-Package MySQL.Data
PM> Uninstall-Package MySQL.Data.Entity 
- Install the older packages:
PM> Install-Package MySQL.Data -Version [type in the tabulator and you'll see the available versions] `
PM> Install-Package MySQL.Data.Entity -Version [select the same version]