Разъем MySql с EF 6

ado.net ef-database-first entity-framework-6 mysql

Вопрос

У меня странная проблема с MySql Connector (6.8.3) и EF6. Я работал над проектом WebApi, где я использую MySql и EF6 с базовым подходом Database. Все работало нормально [даже развернуто на одном из тестовых серверов], пока я не изменил базу данных из базы данных «Тест» в базу данных «Производство» [только имя базы данных] в строке подключения и не обновил модель [просто чтобы увидеть, что ничего не сломано! ]. После этого ему не удалось подключиться к базе данных. Итак, я изменил строку подключения и перестроил решение, затем получил кучу предупреждений «Сопоставление». Я удалил модель и попытался снова создать модель из базы данных. Теперь я получаю следующее сообщение

Ваш проект ссылается на последнюю версию Entity Framework; однако поставщик базы данных Entity Framework, совместимый с этой версией, не смог найти ваше соединение с данными. Выйдите из этого мастера, установите совместимый поставщик и перестройте проект перед выполнением этого действия.

Вот конфигурационный файл

    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

  </configSections>
  <system.data>
    <DbProviderFactories>
      <clear/>
      <remove invariant="MySql.Data.MySqlClient"/>
      <add name="MySql.Data.MySqlClient" description="ADO.Net driver for MySQL" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,Version=6.8.3.0, Culture=neutral,PublicKeyToken=c5687fc88969c44d"/>
    </DbProviderFactories>
  </system.data>
  <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>    
  </entityFramework>

Я попытался переустановить соединитель и EF от Nuget, но ничего не изменилось. Может кто-нибудь, пожалуйста, дайте мне знать, что происходит?

благодаря

Популярные ответы

Кровавый ад, имел ту же проблему.

Я довольно новичок в среде .NET, поэтому я не знаю, как работает менеджер пакетов и все, но кажется, что когда я импортирую сборки для соединителя MySQL, он обновляет файл «web.conf» с неправильным параметры для провайдера.

В моем случае, используя EF6 и MySQL Connector для EF v6.8.3.0, для меня работало следующее:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
        <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
    </providers>
</entityFramework>

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




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему