Ошибка 175: указанный поставщик хранилища данных не может быть найден

Я использую VS2010 с MySQL.NET Connector. Мой проект, который раньше работал, начал отчитываться:

Ошибка 175: указанный поставщик хранилища данных не найден или недействителен.

Я не знаю почему, хотя вещи стали странными после того, как MS рекомендовала исправление к VS.

Конечно, если я добавлю в проект тестовую модель данных Entity ADO.NET, мастер модели данных Entity, который генерирует файл.edmx, не показывает провайдера данных, когда я выбираю "Создать из базы данных". Хуже того, щелчок правой кнопкой мыши и попытка выполнить "Обновить модель из базы данных..." в существующем файле.edmx отправляет VS2010 в смертельную спираль диалоговых окон, которые могут быть завершены только с помощью диспетчера задач.

Вот как я могу это исправить: Завершение работы VS2010. Удалите MySQL Connector полностью. Перезагружать. Установите MySQL Connector полностью. Перезагружать. Перезапустите VS2010.

Внезапно мой поставщик данных существует. Я могу скомпилировать мой код. А также добавить тестовые файлы.edmx. Мастер видит мою базу данных MySQL, проходит тестовое соединение и строит объектные модели с моими реляционными таблицами. Я могу очистить / восстановить столько, сколько я хочу.

Все хорошо, пока я не запустите приложение. Мое "исправление" не прилипает.

В этот момент выдается исключение, сообщающее, что объект подключения возвращает ноль, и если я перекомпилирую без изменений кода, я снова получаю ошибку 175. Вспенить, промыть, повторить.

Некоторые эксперименты, основанные на этом ответе Stackru, показывают, что строка подключения допустима, и, используя объект MySqlConnection, я могу получить доступ к базе данных и выполнить свои собственные рабочие запросы в этом состоянии.

Кажется, проблема в том, что поставщик хранилища данных каким-то образом теряется или наступает, и это влияет на способность делать вещи через EntityFrameworks.

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

ОБНОВЛЕНИЕ - Хотя этот лакомый кусочек не решил мою проблему, он сделал VS2010 более стабильным: сразу же после удаления.NET Connector, я проверил в установленных панелях панели управления и обнаружил, что был также установлен более старый.NET Connector. Я удалил его с панели управления, перезагрузил, а затем установил новый. VS2010 теперь помнит поставщика базы данных для работы с EntityFrameworks. Очевидно, я установил новый MySQL Connector, думая, что он удалит старый, вместо этого они перешагивают друг друга.

Теперь я получаю System.ArgumentException внутри System.Data.Entity.dll заявив немного другое сообщение:

Указанный поставщик хранилища не найден в конфигурации или недопустим. System.ArgumentException: не удалось найти запрошенный поставщик данных.Net Framework. Это не может быть установлено.

Это происходит на System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) метод.

ПРИМЕЧАНИЕ ПО ПЕРЕСМОТРЕНИЮ. Причина вышеприведенных вычетов в том, что VS2010 в конечном итоге снова потерял настройки. Но я смог удалить.Net Connector с панели управления и снова установить разъем без перезагрузки, и снова вернул моего поставщика данных в среду. Эта часть проблемы больше напоминает ошибку VS2010, чем проблему.NET Connector.

6 ответов

Решение

После значительных обновлений проблема исчезла - оказалось, что это всё-таки ошибка среды / драйвера.

У меня была такая же ошибка после переустановки windows, и я забыл добавить провайдера для SQlite.
Он здесь, и хотя он не упоминает об этом, он полностью поддерживает VS 2010.

Я только что перезапустил свой VS2010, и ошибка просто исчезла!!

Я исправляю ошибку, просто перезапуская IDE.

Я недавно столкнулся с этой ошибкой, и после большого перезапуска / переустановки выяснилось, что проблема в том, что у пользователя "Соединителя" недостаточно прав для просмотра.

Основываясь на некоторых комментариях в сети, это может быть связано с тем, что поставщик не находится в GAC.

Также может быть, что старая версия - это GAC.

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

Другие вопросы по тегам