Как устранить исключение поставщика Entity Framework

Я опубликовал проект WCF на сервере, я также опубликовал приложение MVC в том же поле, которое использует службы WCF.

При попытке входа в мое приложение MVC это использует службу wcf, но я получаю это исключение в браузере,

Тип поставщика Entity Framework «System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer», зарегистрированный в конфигурационном файле приложения для поставщика ADO.NET с инвариантным именем «System.Data.SqlClient», не может быть загружен. Убедитесь, что используется имя для сборки, и что assembly доступна для запущенного приложения.

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

Я вижу это сообщение, потому что я включил includeExceptionDetailInFaults="True"

@FranciscoGoldenstein говорит! Вам не нужно устанавливать Entity Framework в ваше консольное приложение или что-то еще, вам просто нужно добавить ссылку на сборку EntityFramework.SqlServer.dll. Вы можете скопировать эту сборку из проекта библиотеки classов, который использует Entity Framework в папку LIB и добавить ссылку на нее.

В итоге:

  • Приложение библиотеки classов:
    • Установка платформы Entity Framework
    • Напишите код уровня данных
    • Файл app.config имеет всю конфигурацию, связанную с Entity Framework, за исключением строки подключения.
  • Создайте консольное, сетевое или настольное приложение:
    • Добавьте ссылку на первый проект.
    • Добавьте ссылку на EntityFramework.SqlServer.dll.
    • app.config / web.config имеет строку подключения (помните, что имя записи конфигурации должно быть таким же, как имя classа DbContext.

это работа для меня! Я надеюсь, что это помогает.

также попробуйте эту ссылку. Тип поставщика Entity Framework не может быть загружен?

Удалите Entity Framework nuget и просто переустановите, сработайте для меня.

У меня также была аналогичная проблема

Моя проблема была решена путем выполнения следующих действий:

введите описание изображения здесь

введите описание изображения здесь

Самый простой трюк для решения этой проблемы – добавить следующую строку внутри одного из classов в проекте EF:

 public class Blablabla { private static string __hack = typeof(SqlProviderServices).ToString(); // other class members as they were before. } 

Это заставит процесс сборки скопировать EntityFramework.SqlServer.dll в папку \bin любого проекта, имеющего ссылки на проект EF.

Не нужно устанавливать пакет EF nuget или делать явную ссылку на EntityFramework.SqlServer.dll в любом нисходящем проекте.

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