2014-10-13 10 views
1

Я пытаюсь использовать EF 6 с MySQL и грядой с этим сообщением об ошибке происходит с помощью мастера подключения:MySql и Entity Framework 6

Вашего проекта ссылается на последнюю версию Entity Framework; однако поставщик базы данных Entity Framework, совместимый с этой версией, не найден для вашего подключения к данным.

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

У меня есть ссылки на версии EntityFramework 6.1.1 и MySql.Data 6.9.3, Mysql.Data.Entity.EF5 и MySql.Data.Entity.EF6 6.8.3. Я также пробовал его с MySql.Data 6.8.3, но то же самое происходит.

Мой web.config показывает следующее:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices,   MySql.Data.Entity.EF6" /> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
</entityFramework> 

Любые мысли или помощь будет с благодарностью приняты - в противном случае мне придется угробить MySql и пойти на Sql Server, поставив большую дыру в моем графике и еще больше в моем кошельке :-).

я наткнулся ниже должности, но это Безразлично, т, кажется, работает для меня:

Can't use a MySQL connection for entity framework 6

ответ

2

Он смотрит на меня, как у вас есть провайдеров как для SQL Server и MySQL и подключения по умолчанию фабрика предназначена для поставщика SQL Server. Вам нужны оба? Если нет, вы можете полностью удалить части SQL Server и убедиться, что соединение по умолчанию - это MySQL.

Кроме того, я заметил, что вы не разместили часть system.data вашего файла конфигурации. В моей рабочей конфигурации MySQL 6.9.3 есть этот раздел.

Моя конфигурация выглядит следующим образом:

<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, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data> 
    <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> 
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> 
    <providers> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> 
    </providers> 
    </entityFramework> 
+0

Спасибо за возвращение ко мне - мне не нужно, как и попытались около десятка различных конфигураций. Это был отчет на dev.mysql.org о том, что кто-то получил его, добавив в Sql Server ... ваше предложение позволяет мне добавить EF5-модель, которая является шагом вперед. – Liam

+0

EF5 достаточно хорош для меня - я думаю, что самое большое изменение, которое я сделал, это напрямую ссылаться на DLL Connector/NET 6.9.4 для mysql.data и mysql.data.entity.ef6 в их установленных каталогах. Моя догадка в том, что в версии 6.9.3 NuGet есть проблемы. Я отметил это как ответ, поскольку правильный пример файла конфигурации недоступен там. – Liam

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