2013-10-01 4 views
4

Я пытаюсь использовать Entity Framework 5 (код-первых) для приложения Web Forms в ASP.NET, я уже имел базовую реализацию выполняется с использованием подключения MySQL, и я также имел успех работы с настольным приложением с помощью SQL Server Compact 4.Entity Framework с использованием неправильного подключения поставщика

проблема, которую я имею, что с EF5 я получаю ошибку

указанный магазин поставщик не может быть найден в конфигурации, или не действительный.

, который очень мало помощи.

Обновление до Ef6-rc1 дает мне больше полезной ошибки

провайдер ADO.NET с инвариантным названием «MySql.Data.MySqlClient» является либо не зарегистрированы в файле машины или приложения конфигурации, или не удалось загрузить. Подробнее см. Внутреннее исключение.

По крайней мере, теперь я знаю, что такое «проблема».

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

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
    <parameters> 
    <parameter value="System.Data.SqlServerCe.4.0" /> 
    </parameters> 
</defaultConnectionFactory> 
<providers> 
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" /> 
</providers> 

<connectionStrings> 
<add name="im_customerdb" connectionString="Data Source=|DataDirectory|\CustomerData.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

Эти выдержки из моего файла web.config, пожалуйста, дайте мне знать, если есть какие-либо другие соответствующие разделы, которые могли бы указать на решение.

Я сделал поиск текста через каждый файл в растворе для слова MySQL и нет никаких ссылок на MySQL. Я проверил чистую версию проекта вне контроля источника, чтобы убедиться, что я не пропустил файл при очистке файлов сборки проекта.

Кто может предоставить какие-либо подсказки относительно того, где я должен смотреть, чтобы определить, почему EF настаивает на загрузке поставщика MySQL?

С уважением, Энтони

* Edit: * Просто добавить, что исключение в первый раз контекст базы данных, доступ, из стека трассировки исключения выбрасывают, когда база данных инициализируются , Я также заметил что-то очень своеобразное; файл базы данных создается правильно, просто кажется, что EF отказывается использовать его и пытается использовать MySQL.

+0

Вы используете сначала edmx или код? – Pawel

+0

Код сначала - я добавлю это к вопросу. – Anthony

+0

Вы просматриваете правильный файл конфигурации? – ErikEJ

ответ

1

Вопросы старые, но может быть, это будет полезно для кого-то.

У меня такая же проблема с переходом от Oracle на MS SQL Server. В конце концов, оказалось, что миграция кода стала основной причиной проблемы. Вы не можете просто оставить их как есть после переключения на другого поставщика базы данных. Итак, вы должны РЕГЕНЕРАТИРУЕТ миграцию для своего нового поставщика базы данных.

0

У меня была такая же проблема с другим разрешением, поэтому я перейду туда и отправлю ее сюда для следующего человека, который ищет.

У меня была строка подключения, в которой она была найдена в веб-конфигурации в разделе <connectionStrings></connnectionStrings>. Казалось, что он читает строку соединения, но не providerName.

Я долго смотрел на него, прежде чем осознать, что я бесполезно положил его в раздел <runtime></runtime>.

Когда я положил свой <connectionStrings> обратно в корень <configuration>, Entity Framework снова начал использовать правильный провайдер.

Смежные вопросы