Mysql
 sql >> база данни >  >> RDS >> Mysql

Не може да се свърже с mysql от visual studio 2015

За да може 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 работи добре за мен всеки път.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Осигуряване на работа на MySQL връзката в PHP функция

  2. SQL заявка:Изтриване на всички записи от таблицата с изключение на последния N?

  3. Как да намерите средната времева разлика между редовете в таблица?

  4. Защо MySQL autoincrement се увеличава при неуспешни вмъквания?

  5. Защо не свържете Android директно към базата данни?