Я использую 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.