У меня возникла эта проблема, когда я пытался создать контроллер с помощью диалогового окна «Добавить контроллер» и при выборе «Контроллер с действиями и представлениями чтения / записи, используя Entity Framework».
Генерирует код для класса Controller. Кстати, сюда входят ссылки на объект контекста EntityFramework (например, в моем случае для PersonController следующая строка: «Person person = db.People.Find (id);»). Это только для начальной точки, и, конечно, вы можете заменить автоматически сгенерированный код, если хотите. В любом случае, именно поэтому он запрашивает класс Context в диалоговом окне и почему он автоматически генерирует новый класс для вас, если потребуется.
Я ссылался на Entity Framework, используя Nuget, который имел эффект ссылки на EntityFramework.dll v4.0. Позже я абстрагировал код доступа к данным в другой проект, поэтому удалил EF через Nuget. Существовали некоторые существующие ссылки на DbSet <> в классе Context, и я думаю, что я, должно быть, решил это, заставив Resharper добавить ссылку, чтобы заставить проект просто заставить его скомпилировать / собрать. R # добавил ссылку на System.Data.Entity из библиотеки .Net 4 Framework. Именно на этом этапе я начал получать сообщение об ошибке при попытке создать новые контроллеры с помощью шаблона «Контроллер с действиями и представлениями чтения / записи, используя Entity Framework».
Я решил это путем (1) удаления всех ссылок на System.Data.Entity; (2) установка Entity Framework через Nuget и перестройка; (3) Создание контроллера (ов); (4) удаление EF через Nuget, удаление автоматически сгенерированного класса Context и замена автоматически сгенерированного кода в контроллере на мой собственный, который ссылался на мои классы из моего проекта / сборки DAL.