Невозможно создать модель данных сущности - с помощью 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.
Есть идеи, как это решить?
Ответы
Ответ 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 ">
Попробуйте снова использовать мастер.
Для меня это сработало.
Удачи!
Ответ 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 не были доступны на момент публикации).
Надеюсь, что этот новый пост поможет некоторым из вас.