Не удалось загрузить файл или сборку "System.Data.Entity

Я работаю в рамках решения (сайт шуток). Решение имеет 2 проекта:

  • Модель (библиотека классов С#)
  • MVC 3 Пустое приложение

Я пытаюсь получить свое представление о списке шуток в базе данных, но я получаю следующую ошибку:

Не удалось загрузить файл или сборку "System.Data.Entity, Version = 4.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одна из ее зависимостей. Система не может найти указанный файл

Как вы можете видеть из сообщения об ошибке, я уже добавил System.Data.Entity в web.config приложения MVC 3.

Независимо от того, что я делаю, я, похоже, не могу исправить ошибку! Я добавил использование операторов для класса Entity, в HomeController и Index.cshtml.

Ответ 1

Чтобы использовать внешнюю модель Entity Framework (например, встраивать в DLL) с помощью ASP.NET MVC 3, вы должны:

  • Добавьте в проект MVC следующую ссылку: System.Data.Entity(версия 4.0.0.0, Runtime v4.0.30319)
  • Добавьте следующую строку в свой web.config

...

< compilation debug="true" targetFramework="4.0">

  <assemblies>
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </assemblies>
</compilation>

Ответ 2

Чтобы устранить эту ошибку:

  • Перейдите к разделу справки в своем проекте
  • Щелкните правой кнопкой мыши по нему, а затем перейдите к ссылке на библиотечный пакет.
  • поиск в интерактивной вкладке для структуры сущностей
  • вы получите много установленных пакетов, если у вас включено подключение к Интернету.
  • Выберите пакет EF4 и, наконец, добавьте его

Если у вас есть какая-либо работа фрейма сущности, и вы получаете сообщение об ошибке, нажмите ссылку для добавления ссылки и в разделе "Обзор" перейдите в папку ниже:

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

Выберите, чтобы найти System.Data.Entity.dll, а затем добавьте его. Это решит проблему.

Ответ 3

Я получал ту же ошибку, и это было потому, что проект MVC3 использовал Entity Framework 4.1, а моя модель домена (в проекте библиотеки классов, то же решение) захватила 4.2, когда я добавил ссылку. Я удалил EF из моего веб-проекта, затем переустановил, теперь оба имеют 4.2 и работают нормально. В настоящее время работает с заголовком Apress, Pro ASP.NET MVC Framework (Freeman).

Ответ 4

Другой способ решить это - добавить пустой файл edmx (Add -> Class -> Data -> ADO.NET Entity Data Model) и удалить его впоследствии. Я не уверен, что делает мастер Visual Studio, но это обычная проблема на моей машине, и я всегда исправляю это.

Ответ 5

Убедитесь, что вы указали сборку System.Data.Entity в своем проекте. Не только в разделе web.config assemblies, но также и ссылки на эти сборки. Также убедитесь, что System.Data.Entity, V4.0.0.0 присутствует в GAC на сервере, на котором выполняется это приложение.