Saya baru saja mengganti ORM dan itu adalah tugas yang relatif menakutkan, karena logika kueri bocor di mana-mana. Jika saya pernah harus mengembangkan aplikasi baru, preferensi pribadi saya akan merangkum semua logika kueri (menggunakan ORM) untuk memastikannya untuk perubahan. Pola repositori cukup sulit untuk dikodekan dan dipelihara sehingga saya bertanya-tanya apakah ada pola lain untuk menyelesaikan masalah?
Saya dapat meramalkan posting tentang tidak menambahkan kompleksitas tambahan sebelum itu benar-benar diperlukan, menjadi lincah dll. Tapi saya hanya tertarik tentang pola yang ada memecahkan masalah yang sama dengan cara yang lebih sederhana.
Pikiran pertama saya adalah memiliki repositori tipe generik, yang saya tambahkan metode yang diperlukan untuk kelas repositori tipe spesifik melalui metode ekstensi, tetapi unit pengujian metode statis sangat menyakitkan. YAITU:
public static class PersonExtensions
{
public static IEnumerable<Person> GetRetiredPeople(this IRepository<Person> personRep)
{
// logic
}
}