2013-05-27 1 views
1

Я попытался настроить свой веб-проект на использование предварительной версии MySQL для .net-коннекторов версии 6.7.2.0. Тем не менее, я продолжаю получать это сообщение, даже если я попытаюсь настроить свой проект на использование версии разъемов 6.7.2.0.Регистрация entityFramework с MySql.Data Разъем 6.7.2.0

Как сейчас, я получаю эту ErrorMessage:

Нет Entity Framework поставщика найденную для 'MySql.Data.MySqlClient' поставщика ADO.NET. Убедитесь, что провайдер зарегистрирован в разделе «entityFramework» файла конфигурации приложения. См. http://go.microsoft.com/fwlink/?LinkId=260882 для получения дополнительной информации.

Я пробовал разные способы, чтобы настроить мой файл Web.config, а вот мои текущие настройки:

<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.7.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data> 
    <entityFramework> 
    <defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> 
    </entityFramework> 

Я установил EF6 alfa3 от NuGet. В настоящее время мой соединитель установлен вручную с this downloaded file, я попытался установить его из репозитория NuGet, но с тем же результатом.

+0

Мой совет не использовать EF с Mono. Если вам нужна ORM в Mono, пожалуйста, используйте NHibernate, которая имеет полную поддержку в Linux. Как правило, советы о запуске MVC в Mono - это удаление фрейма сущности dll. –

+0

Поскольку EF будет поддерживаться в Mono с версии EF6, я бы очень хотел придерживаться Entity Framework. Сообщение об ошибке, которое я получаю, однако, находится в моей среде Windows. – Gunnar

ответ

2

В дополнение к регистрации поставщика ADO.NET, вам необходимо зарегистрировать поставщика Entity Framework:

<entityFramework> 
    <providers> 
    <provider invariantName="MySql.Data.MySqlClient" 
       type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" /> 
    </providers> 
</entityFramework> 

Вы также должны убедиться, что поставщик был построен с Entity Framework 6. См this article более информацию об этом.

+0

У меня была ошибка с очень похожим сообщением с OP. (Mine был «Нет провайдера инфраструктуры Entity Framework для поставщика ADO.NET с инвариантным именем« MySql.Data.MySqlClient ».) Ответ @ bricelam также исправляет эту ошибку. – Theophilus

1

У меня была аналогичная проблема. После возврата к EF5 и MySql Connector 5.6, и он все еще не работает, я наконец нашел фид, где кто-то упомянул, что им нужно удалить ссылку на версию и культуру, чтобы заставить ее работать. Не знаю, почему. Здесь:

<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, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data> 
    <entityFramework> 
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />