2017-01-20 5 views
0

Это, кажется, распространенная ошибка, но ни одна из исправлений, которые я видел, пока не сработала. У меня есть два решения VS2015 EF6 «code from first from database» на моем ПК, которые имеют идентичные модели и файлы app.config. Они оба получают доступ к одной и той же базе данных. Один запускается, а другой выдает это исключение.EF6 для MySql InvalidOperationException

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

Исключение выбрасывается из public virtual IList<NamedDbProviderService> DbProviderServices

кажется, что копирование рабочего раствора с одного компьютера на другой Провоцирует это исключение как и проверить файл решения из Git. Единственное, что я могу придумать, это то, что с восстановлением пакета NuGet что-то не так, но удаление или удаление пакетов или конфигурации пакета и их замена вручную не исправляют.

ответ

0

Проблема заключается в том, что драйвер EF для MySql не загружается при анализе конфигурации. Добавление следующего кода в основную программу исправляет его.

/// <summary> 
    /// Force the MySql.Data.Entity Assembly to be loaded 
    /// or the app.config file will not load 
    /// No need to call this function 
    /// </summary> 
    public static void Fix() 
    { 
     var name = MySql.Data.Entity.MySqlProviderInvariantName.ProviderName; 
    }