MySQL Entity Framework Ошибка - указанный поставщик хранилища не найден в конфигурации или недопустим - PullRequest
10 голосов
/ 03 января 2012

Я написал сборку на C #, чтобы выполнить весь доступ к данным для базы данных MySQL.Я успешно использовал сборку (скомпилированную dll) в моем настольном приложении на C # winform.Но он работает только на компьютерах, на которых установлена ​​«MySQL Connector Net 6.4.4».

Я пытался использовать ту же сборку с моим сайтом asp.net.Сначала я получил ошибку об отсутствующей строке подключения.Это было легко решено добавлением строки соединения MySQL в файл web.config.Теперь я получаю эту ошибку (трассировка стека, перечисленная ниже), я попытался добавить следующие dll-файлы в папку bin, чтобы устранить ее, но она не сработала.

Ответы [ 5 ]

33 голосов
/ 03 января 2012

Но это работает только на ПК с установленной MySQL Connector Net 6.4.4.

Означает ли это, что вы пытаетесь запустить свой код на компьютере, на которомпровайдер не установлен?В этом случае вы также должны зарегистрировать провайдера в файле конфигурации, поскольку при установке он добавляется в machine.config, а если вы его не устанавливали, провайдер в настоящее время не зарегистрирован.

Попробуйте добавить его в свой Интернет.файл конфигурации:

<system.data>
  <DbProviderFactories>
    <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.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>
6 голосов
/ 12 марта 2013

Я обнаружил, что у меня тоже была эта проблема при использовании автономного установщика .NET connect 6.6.5.

Чтобы решить эту проблему, просто удалите автономный установщик коннектора .NET и установите mysql-community-installer. Этот инсталлятор позволяет добавлять / удалять функции для MySQL, и в нем одной из функций является .NET-коннектор с Entity. Поддержка фреймворка.

Как только вы используете этот соединитель, все проблемы с MySQL EF исчезнут.

4 голосов
/ 03 декабря 2013

Добавить это в веб-конфигурацию

 <system.data>
    <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" />
    </DbProviderFactories>
  </system.data>
2 голосов
/ 10 февраля 2014

Для людей, которые достигли этого старого вопроса через Google, как я:

Вы также получите эту ошибку, если вы обновите MySQL для Visual Studio 1.1.3, которая является первой совместимой версией с Visual Studio 2013, но все еще использую MySQL Connector 6.6.6, который, насколько мне известно, является последней версией, совместимой с Entity Framework 4.3.1.

Мы знали, что должны были обновиться до EF5 (или 6) как можно скорее,но теперь это заставляет нас измениться в очень неудобное время ...

0 голосов
/ 28 мая 2013

У меня была эта ошибка (я использовал .net connector 6.4.3) после удаления всех .net framework и их переустановки.Исправление состояло в том, чтобы удалить 6.4.3 и установить 6.6.5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...