Сбой бизнес-сайта Entity Framework при подключении к базе данных MySQL

Я пытаюсь создать модель данных сущности с помощью мастера для обратной инженерии существующей базы данных MySQL. Я перейду на страницу "Выбор подключения к данным" мастера, выберите существующее соединение с MySQL и нажмите "Далее", и мастер сработает. В частности, диалоговое окно просто исчезает без сообщения об ошибке или любой трассировки. Каждый раз. Перезапуск VS или Windows ничего не делает.

Я могу подключиться к базе данных с помощью Server Explorer и того же соединения без проблем, поэтому я уверен, что это не проблема подключения.

Это в Visual Studio 2015 с установленными обновлениями, версии 1.2.6 версий MySQL для Visual Studio, EF 6.1.3 и MySql.Data и MySql.Data.Entity.EF6 6.8.3.0. Это консольное приложение, ориентированное на .NET Framework 4.6.1.

Google пока не показал ничего полезного. Другой вопрос

Ответ 1

Это вызвано несоответствием версии.

В моей системе у меня был MySQL Connector 6.9.6. Выдача команды в консоли NuGet Manger Console:

Установочный пакет MySql.Data.Entity устанавливает версию 6.9.8 по умолчанию. Ваш соединитель должен соответствовать фактической версии пакета NuGet. Вы можете загрузить обновленную версию коннектора из: https://www.mysql.com/products/connector/

Здесь выберите "Драйвер Ado.net для MySQL" и загрузите соответствующую версию (в этом случае 6.9.8). Reopen Visual Studio и теперь мастер не сбой. Не требуется перезагрузка.

Ответ 2

У меня была эта проблема сегодня, следуя советам здесь, что это "несоответствие версий", совершенно правильно!

Мое важное "открытие" заключается в том, что они переименовали пакет, который вам нужен для EF6! Как многие люди здесь обнаружили (например, "Нофи"), снижение версии до соответствия решает проблему. Однако, вместо понижения новых версий, замените пакет Mysql.Data.Entity на более новую MySql.Data.EntityFramework ! :)

коротко: используйте MySql.Data.EntityFramework, НЕ Mysql.Data.Entity

Ответ 3

Я столкнулся с той же проблемой, потому что я использовал Mysql соединитель v 8.0.12, MySql.Data v8.0.12 и Mysql.Data.Entity v6.10.8.

Программа вылетает из-за проблем с совместимостью. Что сработало для меня, я установил все три одной и той же версии

MySQL соединитель v 6.10.8 и MySql.Data v6.10.8 и Mysql.Data.Entity v6.10.8.

Ответ 4

Это продолжается с VS2017 и последним соединителем MySQL (6.10.6). Снижение уровня совместимости с разъемом и пакетом Nuget до версии 6.9.11.

Ответ 5

Из явной удачи и случайности я столкнулся с той же ошибкой. Я использую VS 2015 с Entity Framework 6. Ошибка также произошла по мере того, как я пытался создать модель из базы данных с использованием существующего соединения обратной связи EF.

Проблема в том, что даже если соединение данных существует, и вы можете его обновить, каким-то образом соединение будет нарушено. Перейдите на панель Проводник сервера слева, а затем в разделе Подключения данных найдите существующее соединение и вместо проверки используйте обновление, щелкните правой кнопкой мыши и выберите Изменить подключение.

Здесь попробуйте проверить соединение и нажать OK. Вы должны получить сообщение об ошибке (для меня это сказано Невозможно подключиться к любому из указанных узлов MySQL. ')

Ответ 6

Как я комментировал Lars Meldgård, деинсталляция и переустановка версии 6.9.9 Connector/Net заставила меня еще одну страницу в мастере. Поэтому я возьму это как победу. Но я действительно смущен, почему это сработало. Я столкнулся с проблемой на двух разных компьютерах, моей главной настольной машине и ноутбуке. Аналогичные конфигурации в Windows 10 с обновлением все были повреждены? Скорее всего.

Итак, теперь проблема заключается в выборе страницы "Выбор вашей версии" мастера, где я получаю сообщение об ошибке ниже. Но это другая проблема, которую я буду решать дальше.

Новая ошибка на следующей странице мастера

Ответ 7

Я новичок в программировании/.Net-разработке. У меня была та же проблема, когда окно исчезает, когда я пытаюсь создать модель сущности из базы данных MySql.

Я попробовал соответствующие версии пакетов и соединителей Nuget, но до сих пор не радуюсь. То, что я сделал, чтобы заставить его работать, выглядит следующим образом:

  • Я удалил, а затем снова создал проект (к счастью, это был новый проект) -После создания модели из базы данных
  • Затем я установил пакеты Nuget в соответствии с версией моего соединителя.

Я использую VS 2017 Community Edition, Разъем V6.9.9, Пакеты Nuget V6.8.8

Надеюсь, это поможет кому-то.

Ответ 8

Так как самая высокая версия MySql.Data.Enetity - v6.10.8, которую я могу найти через nuget, я скачал "mysql-connector-net-6.10.8.msi", поэтому я понизил MySql.Data до v.6.10.8., что подвох!

Ответ 9

Я делюсь своей проблемой, которую я наконец решил, поскольку это настоящая головная боль, чтобы поймать.

У меня был столбец идентификатора роли в роли таблицы, первоначально установленном на номер (38,0) в SQL и созданный таким образом, а затем изменился на NUMBER (10,0) и изменил его. После нескольких попыток решить эту проблему я, наконец, щелкнул правой кнопкой мыши по таблицам в подключении к серверу и нажал кнопку "Дизайнер". Моя одна таблица: Роль, имела номер идентификатора столбца (10,0). Он был привязан к Table USER как RoleID. После проверки RoleID в таблице USER, в дизайнере он показывался как Number (38,0). Поэтому проверьте свои внешние ключи один за другим... Это была моя проблема, которая стоила мне 3 дня, чтобы окончательно поймать. Диалоговое окно "Мой EF" также просто исчезло или не предоставило мне никаких таблиц в файле EDMX.

Ответ 10

Несоответствия, кажется, на точной версии MySQL Connector Net. У меня есть много проектов в dev и prod с "MySQL Connector Net 8.0.13", и я пока не могу выполнить обновление по всем направлениям. Текущий пакет NuGet был "MySQL Connector Net 8.0.15 ". Мне пришлось удалить "MySql.Data.EntityFramework 8.0.15" и "MySql.Data 8.0.15", а затем принудительно установить версию с установками командной строки, чтобы она соответствовала текущей версии MySQL Connector Net, которую я запускаю в dev и prod:

PM> Install-Package MySql.Data -Version 8.0.13
PM> Install-Package MySql.Data.EntityFramework -Version 8.0.13

Ответ 11

<providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.16.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>

Я изменил версию MySql.Data.EntityFramework на 8.0.16, потому что мой соединитель 8.0.16 и проблема исчезли. это сработало для меня