Ответ 1
мой ответ довольно прост, не испортите слой презентации (всего приложения 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);
это, чтобы, конечно, упростить вещи, основываясь на моем опыте, это прочный дизайн, немного переусердствующий для очень маленьких проектов, но окупающийся в долгосрочной перспективе.
на мой взгляд, M MVC, Model, НЕ является моделью данных, не является EF, не существует ORM, привязанного к определенному движку базы данных.
этот ответ субъективен, конечно, и основан на моем личном опыте; -)