Ошибка 175: указанный поставщик хранилища данных не может быть найден - PullRequest
21 голосов
/ 15 декабря 2010

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

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

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

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

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

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

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

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

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

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

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

ОБНОВЛЕНИЕ - Хотя этот tidbit не решил мою проблему, он сделал 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 ]

4 голосов
/ 28 июля 2011

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

1 голос
/ 04 марта 2012

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

1 голос
/ 19 июля 2011

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

0 голосов
/ 10 декабря 2012

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

0 голосов
/ 22 ноября 2011

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

0 голосов
/ 02 февраля 2011

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

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

...