мой ответ довольно прост: не путайте уровень представления (целое приложение MVC) с логикой доступа к данным и моделированием данных.
Иметь как минимум 4 проекта в решении Visual Studio, снизу вверх:
1 - ProjectName.Interfaces (библиотека классов, интерфейсы сущностей);
2 - ProjectName.DAL (библиотека классов, единственная, которой разрешено даже знать, используется EF, сущности POCOреализовать интерфейсы проекта 1, используя другой файл, в котором вы повторно определяете те же объекты, используя частичные классы ...);
3 - ProjectName.BL (Библиотека классов, Бизнес-логика, ссылается на два проекта выше 1 и 2);
4 - ProjectName.Web (приложение ASP.NET MVC, Уровень презентации, ссылается на два проекта 1 и 3, но НЕ 2);
это, конечно, для упрощения, исходя из моего опытаэто солидный дизайн, немного излишний для очень маленьких проектов, но окупается в долгосрочной перспективе.
, на мой взгляд, модель MVC, модель, НЕ является моделью данныхdel, это не EF, не существует ORM, привязанного к конкретному ядру базы данных.
этот ответ, конечно, субъективен и основан на моем личном опыте; -)