Secara realistis, MVC sebagian besar merupakan pola implementasi UI, jadi pertanyaannya agak diperdebatkan. Namun, sebenarnya hanya ada dua opsi gambaran besar. Pengontrol Anda biasanya mengirimkan permintaan untuk memuat atau menyimpan entitas dalam model Anda menggunakan 1) lapisan layanan atau 2) pola Rekaman Aktif.
Lapisan layanan dapat mengambil salah satu dari sejumlah bentuk, meskipun preferensi pribadi saya adalah untuk bekerja dengan abstraksi repositori untuk entitas akar agregat, implementasi konkret yang baik akan bekerja dengan semacam ORM, atau DAO ringan, atau API untuk beberapa toko non-relasional jika itu masuk akal untuk aplikasi tersebut.
Pola Rekaman Aktif berarti bahwa model Anda memiliki tanggung jawab untuk kegigihan, meskipun biasanya berarti kelas dasar dari beberapa jenis mengelola pemetaan ke toko Anda, sehingga model Anda tidak benar-benar terlibat secara langsung.
Pada dasarnya, controller mengirimkan permintaan untuk tetap objek, apakah itu panggilan ke repositori Anda, implementasi UnitOfWork Anda, atau metode Simpan di entitas Anda. Jika Anda menggunakan repositori, objek model Anda tidak tahu apa-apa.