У меня возникают проблемы с Visual Studio 2012, пытаясь добавить контроллер MVC4 с помощью лесов. В идеале я хотел бы иметь модель Entity Framework (edmx файл и т.д.), Сгенерированную из базы данных, с помощью Add Data Item - ADO.NET Entity Data Model (т.е. Не Code First) в отдельной сборке из моего веб-приложения. Однако, когда я установил это и использовал Add Controller, указав "MVC-контроллер с действиями и представлениями чтения/записи, используя Entity Framework" и выбрав класс контекста класса и данных из моей сборки DatabaseModel, появится следующее предупреждающее сообщение.
'Ifl.Payforit4.DatabaseModel.Mno' не является частью указанного Класс Ifl.Payforit4.DatabaseModel.Payforit4Entities и Класс Ifl.Payforit4.DatabaseModel.Payforit4Entities не может быть изменено, чтобы добавить свойство "DbSet" в Это. (Например, 'Ifl.Payforit4.DatabaseModel.Payforit4Entities' класс может находиться в скомпилированной сборке.)
Невозможность изменить класс имеет смысл, так как он находится в другой сборке, хотя в том же решении и автоматически сгенерирован с помощью T4, но, глядя на автоматически сгенерированный код для Payforit4Entities, свойство DbSet довольно четко существует уже.
public DbSet<Mno> Mnoes { get; set; }
Я пробовал несколько других вещей.
- размещение модели данных непосредственно в веб-приложении
- изменение класса модели на множество других таблиц в базе данных в случае возникновения проблемы с классом Mno
- сокращение модели данных до простой простой таблицы
- с помощью бета-версии Power Tools 2 Entity Framework для обратной обработки кода первой модели. Это породило новый набор ошибок. Я вижу, почему это бета-версия.
- изменение стратегии генерации кода модели данных ADO.NET от None to Default для создания модели данных на основе ObjectContext, а не DbContext
- Отключение плюрализации, поэтому имя свойства Mno вместо Mnoes
Ни один из них не работал. Единственное, что работало, это писать класс Code First DbContext и POCO вручную. Кстати, каждый пример, который я нашел, демонстрирующий MVC4, использует такую модель данных. Есть ли что-то где-то, что говорит, что Code First - это единственная модель данных, которая работает с подкладками MVC4? Кто-нибудь сумел подбросить базу данных сначала (.edmx) в Visual Studio 2012? База данных достаточно сложная, и я предпочел бы придерживаться первой стратегии базы данных.
Я вижу, что должны были бы быть некоторые различия в лесах моделей First First First First Code или First First. Например, у первого есть свойство POCO, содержащее ключ, обозначенный KeyAttribute, тогда как последний содержит эту информацию в файлах модели edmx. Является ли это обоснованием для функции обратного инженера в Entity Framework Power Tools? Ожидаем ли мы отойти от файлов edmx для обратной инженерии моделей Code First, чтобы использовать строительные леса MVC4? Если это так, ожидаем ли мы продолжить работу с проектами Dynamic Data до тех пор, пока инструменты Power Entity Framework не будут завершены?