За да може VS 2015 да се свърже с MySql, трябва да използвате по-нова версия на MySql библиотеките. Макар че това изглежда като доста прост отговор, честно казано, по пътя се сблъсках с няколко проблема. Имайки това предвид, ще напиша 1 процес, който постоянно работи за мен, доколкото EF работи с MySql и VS2015. И така, без повече приказки, ето стъпките, които предприех, за да накарам това да работи.
1) Уверете се, че инсталацията на MySql конектора е актуализирана
2) Създайте своя уеб проект
3) Отворете Nuget
4) Инсталирайте Entity Framework
5) Потърсете MySql
6) Инсталирайте MySql.Data
7) Инсталирайте MySql.Data.Entity
8) Инсталирайте MySql.Data.Entities
9) Инсталирайте MySql.Web
10) Отидете на препратките за проекта и изтрийте MySql.Data.Entity.EF6
11) Проверете версиите на библиотеките MySql.Data и MySql.Web. Ако са под 6.9.6, изтрийте и тях
12) Добавете нова препратка, като прегледате мястото за инсталиране на конектора mysql за вашата версия на .NET рамката (моята е C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5) и грабване на MySql.Data.Entity.EF6.dll (моята версия е 6.9.6, имайте това предвид, когато променим web.config по-късно)
13) Ако другите библиотеки също са по-стари версии, добавете препратки към тях, като прегледате папката с пакети във вашето решение и вземете файловете от съответните им папки. Обикновено не ми се налага да правя това.
14) Сега Web.config ще трябва да бъде редактиран. Първата стъпка е да замените секцията на структурата на обекта с този код (променете номера на версията на текущата си версия. Моля, имайте предвид, че намерих този фрагмент в мрежата преди няколко седмици и нямам оригиналната връзка. Извинявам се на оригинала плакат с тази информация.)
<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, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>
15) Уверете се, че вашата секция DbProviderFactory съвпада с
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
16) Запазете и изградете
Не съм сигурен колко от тези стъпки всъщност са необходими, но след като най-накрая го получих, трябваше да свърша малко работа и нямах време да стесня нещата допълнително. Дано това ви раздвижи.
P.S. Ако след всичко това преминете през съветника и той просто изчезне, преди да ви покаже таблиците в базата данни, от които да създадете обекти, тогава това може да е един от трите проблема, с които се сблъсках по пътя. Не може да се установи връзка със сървъра на базата данни. Потребителят няма необходимите разрешения за базата данни. Грешната версия на MySql.Data.Entity.EF6 е добавена като справка или номерът на версията е грешен в web.config. Ако грабна този файл от директорията пакети на моето решение, често се сблъсквам с този проблем с прекъснат съветник без съобщение за грешка. Вземането му от инсталационната директория на MySql работи добре за мен всеки път.