Подтвердить что ты не робот

Невозможно создать модель данных сущности - с помощью MySql и EF6

Я пытаюсь добавить модель Entity для edmx в свой С#/Web Project в Visual Studio 2013. Моя проблема в том, что файл не создан.

Выполняю следующие шаги:

  • Дайте элементу имя
  • Выберите "EF Designer из базы данных"
  • Выберите соединение из выпадающего (локального хоста), которое уже успешно протестировало подключение к MySQL databse
  • Параметр "Сохранить параметры подключения в файле webc.config as" отмечен
  • Я нажимаю "Далее", и окно исчезает, и я возвращаюсь в окно кода.

Файл edmx не создается. (хотя он работает с SQL Server, но не для MySQL)

У меня установлен Entity Framework 6.1.2, MySql.Data, MySql.Data.Entities, MySql.Data.Entity, MySql.Web - все установлено.

Я также перестроил проект, прежде чем пытаться добавить файл модели сущности.

Я установил последний пакет MySQL с последним .NET connector.

Запуск: Visual Studio 2013 в Windows 7.

Есть идеи, как это решить?

4b9b3361

Ответ 1

Я решил эту проблему, выполнив следующие шаги:

  • Удалите MySql.Data.Entities из Nuget, используя команду ниже в консоли диспетчера пакетов: Uninstall-Package MySql.Data.Entities

  • Добавьте ссылку на проект к последнему MySql.Data.Entity.EF6.dll с вашего пути установки соединителя MySql по адресу: C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5

Ответ 2

У меня была такая же ситуация при настройке среды Visual Studio Professional 2017 с MySQL, ADO.NET(Database First) и EF6.

Примечание. Пожалуйста, следуйте инструкциям в том же порядке.

  • Удалите/удалите "Connector/NET" и "MySQL для Visual Studio", если они установлены.

  • Установите "MySQL для Visual Studio" v2.0.5 CTP (MySQL для Visual Studio). Примечание. Установите MySQL для Visual Studio до Connector/NET.

  • Установите "Connector/NET" v6.9.10 (Connector/Net). https://i.stack.imgur.com/XOT1I.jpg Примечание. Сначала я попытался использовать Connector/NET v6.8, v6.10 и v8, но ни один из них не работал с Visual Studio 2017 и ADO.Net. Здесь вы можете найти все версии совместимости и совместимости с IDE Visual Studio, но пока этот список неточен.

  • Создайте новый проект Visual Studio Professional 2017.

  • Загрузите и установите "EntityFramework" v6.2.0 через NuGet, перейдя на вкладку "Проект" / "Управление пакетами NuGet/Browse → Entity Framework".

  • Добавьте ссылки на C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.dll а также C:\Program Files (x86)\MySQL\Connector.NET 6.9.10\Assemblies\v4.5\MySql.Data.Entity.EF6.dll; щелкнув правой кнопкой мыши по ссылкам в обозревателе решений и выбрав Добавить ссылку/Обзор → Обзор.

  • Добавьте информацию о поставщике MySQL EF6 внутри App.config для поставщиков инфраструктуры сущностей:

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

Ответ 3

В VS 2015 все еще есть эта ошибка. Это вызвано несоответствием версии.

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

Install-Package MySql.Data.Entity

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

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

Ответ 4

Мне удалось решить эту проблему, выполнив следующие действия:

  • Откройте MySQL Installer и установите последнюю версию Connector/NET
  • Удалите/переустановите пакеты последней версии MySQL.Data. * с версиями, которые соответствуют версии недавно установленного пакета Connector/NET
  • Перезапустить Visual Studios
  • Реконструкция

Ответ 5

Внесение предложений относительно ответов версий NuGet из других. Я решил эту проблему, удалив .Data и Data.Entitiy.EF6, установленные Nuget.

Затем щелкните правой кнопкой мыши ссылку и найдите:

C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll а также C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll

Затем я смог выполнить мастер ADO.Net с помощью моделей .edmx.

Ответ 6

Я знаю решение.

Nuget устанавливает граничную версию пакетов MySql.Data. *, хотя у вас, вероятно, есть предыдущая версия соединителя (в моем случае пакеты были v 6.9.6, а Connector - 6.9.5). Это доходит до того, что у вас есть несоответствие версии.

Имейте в виду, что если вы используете Install-Package MySql.Data.Entities в NuGet, вы получите еще более старую версию, например 6.8.3, поэтому вам придется добавлять ссылки самостоятельно и следить за ними на котором вы пытаетесь добавить свое решение.

Ответ 7

Это приложение ASP.NET MVC, которое не имеет файла app.config. Я не буду перечислять неудавшиеся попытки, но то, что сработало для меня, было следующим:

  • Когда VS не работает, загрузите и установите "MySQL for Visual Studio 2.0.5" - последнюю версию на момент написания.
  • Запустите VS2017 и удалите пакеты "MySql.Data.Entity" и "MySql.Data" NuGet, если они были ранее установлены в VS2017.
  • Загрузите и установите последний MySql-коннектор/NET, используя ссылки выше (версия 8.0.13 на момент написания).
  • В вашем проекте добавьте ссылки на DLL "MySql.Data.dll" и "MySql.Data.EntityFramework.dll", как описано выше, Lopez93, но NB упомянутый "MySql.Data.Entity.EF6.dll" не существует в 8.0.13, только "MySql.Data.EntityFramework.dll".
  • Теперь отредактируйте файл web.config и убедитесь, что в этом разделе есть эта строка

<provider virtualantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data. EntityFramework ">

  • Удалите или закомментируйте любые другие строки "<provider invantName =" MySql.Data.MySqlClient "...".

  • Перестройте проект.

Попробуйте снова использовать мастер.

Для меня это сработало.

Удачи!

Ответ 8

У меня была такая же проблема с использованием MySQL Connector 6.9.8.0. Пока все мои версии совпали, это все еще не удалось. Я установил новую версию Visual Studio ПОСЛЕ подключения к MySQL (с 2010 по 2013 год). Для меня решение заключалось в том, чтобы удалить MySQL Connector для NET и затем переустановить его (точно такая же версия). Затем перезапустите Visual Studio.

Похоже, это еще одна версия той же проблемы.

Ответ 9

Вы можете сделать это решение:

  • Добавить новую пустую EF-модель.
  • В emdx design rigt щелкните и обновите модель из базы данных.
  • выберите вашу базу данных и модель будет сгенерирована.

Это работает для меня:)

Ответ 10

другое дело:

---> установить entityframework 6.2.0 через nuget.

---> Проверьте в файле web.config/app.config, что у вас есть поставщик System.Data.SqlServerCe.4.0. если он не установлен, затем установите его через nuget, ту же версию, что и ранее установленная инфраструктура сущности (в этом случае 6.2.0).

---> затем добавьте ссылки: (в этом случае из версии connector/NET 6.9.10) C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.dll и C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5\MySql.Data.Entity.EF6.dll и перестроить.

---> попробуйте добавить этого провайдера тоже: <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/> rebuild, снова.

---> и, наконец, попробуйте добавить файл.edmx с новым соединением.

Это работало в моем случае, когда я установил VS2017 и MySQL в совершенно новый ноутбук и имел ту же проблему.

Ответ 11

Я изменил файл web.config с:

<provider virtualantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version = 8.0.11.0, Culture = neutral, PublicKeyToken = c5687fc88969c44d"/>

Для того, чтобы:

<provider invantName = "MySql.Data.MySqlClient" type = "MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"> </provider>

Ответ 12

Я столкнулся с этой проблемой при обновлении с версии 6 MySql до версии 8.0.17.0. Я боролся с этим почти два дня, пробуя все старые лекарства, пока не наткнулся на эту статью. Если вы используете EF6 и версию 8.0. MySql, согласно этому сообщению:


MySql.Data.Entity 6.10.7 не совместим с MySql.Data 8.0.11.

Oracle переименовал пакет в MySql.Data.EntityFramework для v8.x. Вам необходимо удалить MySql.Data.Entity и установить MySql.Data.EntityFramework.


После того, как я сделал этот простой шаг, подключение к данным начало работать, и дизайнер EDMX также начал работать (хотя я должен вернуться к Visual Studio 2017, потому что инструменты Designer для VS 2019 не были доступны на момент публикации).

Надеюсь, что этот новый пост поможет некоторым из вас.