На самом деле, MVC - это в основном шаблон реализации пользовательского интерфейса, поэтому вопрос несколько спорный. Тем не менее, на самом деле есть только два варианта большой картинки. Ваш контроллер обычно отправляет запросы на загрузку или сохранение сущностей в вашей модели, используя либо 1) некоторый уровень обслуживания, либо 2) шаблон Active Record.
Уровень обслуживания может принимать любую из нескольких форм, хотя я лично предпочитаю работать с абстракцией репозитория для агрегированных корневых сущностей, конкретные реализации которых будут работать либо с каким-либо ORM, либо с облегченным DAO, либо с API для некоторого нереляционного хранилища, если это имеет смысл для приложения.
Шаблон Active Record означает, что ваша модель несет ответственность за постоянство, хотя обычно это означает, что некоторый базовый класс управляет отображениями в вашем магазине, поэтому ваша модель на самом деле не имеет такого непосредственного участия.
По сути, контроллер отправляет запросы на сохранение объектов, будь то вызов вашего репозитория, реализация UnitOfWork или метод Save для ваших объектов. Если вы используете репозитории, ваши объекты модели игнорируют постоянство.