Не удалось загрузить поставщик ADO.NET с именем-инвариантом System.Data.SqlServerCe.4.0.

Тип поставщика Entity Framework 'System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact', зарегистрированный в файле конфигурации приложения для поставщика ADO.NET с инвариантным именем System.Data.SqlServerCe.4.0, не может быть загружен. Убедитесь, что используется полное имя сборки и что сборка доступна для работающего приложения.

Выше приведено сообщение об ошибке, которое я получаю при попытке создания метаданных с помощью Breeze / Entity Framework. Nuget, кажется, что-то напутал, но не очевидно, что и не очевидно, откуда он пытается прочитать сборку. Любые идеи будут приветствоваться.

1 ответ

У меня такая же проблема. Вы установили Sql Compact, но у вас отсутствует расширение EntityFramework для Sql Compact. Вам необходимо установить его через консоль диспетчера пакетов или менеджер пакетов nuget. Консольный скрипт:

Install-Package EntityFramework.SqlServerCompact 

Я получал это сообщение об ошибке при попытке запустить команду update-database в консоли диспетчера пакетов для первого проекта кода EF. При поиске этого конкретного сообщения об ошибке я продолжал возвращаться к этому квесту, но установка nuget EntityFramework.SqlServerCompact не разрешила его в моем сценарии.

Решение для меня заключалось в том, чтобы убедиться, что запускаемый проект по умолчанию не настроен на несколько запускаемых проектов (в моем случае это должен быть веб-проект), а проект по умолчанию в диспетчере пакетов установлен на проект EF, который вы пытаетесь для запуска миграции из.

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

Я, наверное, сам вернусь к этому вопросу через пару месяцев, когда забуду и сделаю ту же ошибку!

Другие вопросы по тегам