Saya percaya bahwa jika Anda memiliki repositori Anda menggunakan ORM yang sudah cukup disarikan dari database.
Namun, di mana saya bekerja sekarang, seseorang percaya bahwa kita harus memiliki lapisan yang mengabstraksi ORM jika kita ingin mengubah ORM nanti.
Apakah ini benar-benar diperlukan atau itu hanya banyak over head untuk membuat layer yang akan berfungsi pada banyak ORM?
Edit
Hanya untuk memberikan lebih banyak detail:
- Kami memiliki kelas POCO dan Kelas Entitas yang dipetakan dengan AutoMapper. Kelas entitas digunakan oleh lapisan Repositori. Lapisan repositori kemudian menggunakan lapisan abstraksi tambahan untuk berkomunikasi dengan Entity Framework.
- Lapisan bisnis sama sekali tidak memiliki akses langsung ke Entity Framework. Bahkan tanpa lapisan tambahan abstraksi atas ORM, yang satu ini perlu menggunakan lapisan layanan yang menggunakan lapisan repositori. Dalam kedua kasus, lapisan bisnis benar-benar terpisah dari ORM.
- Argumen utama adalah untuk dapat mengubah ORM di masa depan. Karena itu benar-benar terlokalisasi di dalam lapisan Repositori, bagi saya, sudah terpisah dengan baik dan saya tidak melihat mengapa lapisan tambahan abstraksi diperlukan untuk memiliki kode "kualitas".