Ошибка: пространство имен не может напрямую содержать элементы, такие как поля EntityFramework.dll', не может быть найден

введите описание изображения здесь я хочу создать модель: add > class > ado.net entity, для моего первого проекта базы данных, а также хочу создать операцию CRUD с помощью asp.netscaffolding, но не удалось создать модель с необходимым кодом. и, таким образом, мне не удалось создать каркас. в моем файле модели AllahHelp.Context.cs, нет кода, только текст "ErrorGeneratingOutput".

Ошибка 1:

Пространство имен не может напрямую содержать элементы, такие как поля или методы F:\project\WebApplication8\WebApplication8\Models\AllahHelp.Context.cs 1 1 WebApplication8

Ошибка 2:

Преобразование компиляции: файл метаданных 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools..\IDE\EntityFramework.dll' не найден F:\project\WebApplication8\WebApplication8\Models\AllahHelp.tt 1 1 WebApplication8

2 ответа

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

Ваша настоящая ошибка звучит так, как будто вы пропустили ссылку на EntityFramework.dll, Щелкните правой кнопкой мыши по проекту, выберите "Управление пакетами NuGet..." и найдите и установите EntityFramework в свой проект.

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

В соответствии с этим похожим вопросом это также может быть связано с вашим путем установки. Если это ваша проблема, попробуйте найти, где находится dll, и исправьте переменную среды VS120COMNTOOLS (Панель управления -> Система -> Расширенные настройки системы -> Переменные среды -> Системные переменные)

(Будьте осторожны при изменении системных переменных.)

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

Пример:

Проблемный код:

      {
          "find": "__LOCATION__",
          "replaceWith": "<#= deployment.Location"
},

Фиксированный код:

      {
          "find": "__LOCATION__",
          "replaceWith": "<#= deployment.Location #>"
},
Другие вопросы по тегам