Sadece bir ORM değiştirmek zorunda kaldım ve bu oldukça korkutucu bir görevdi çünkü sorgu mantığı her yerde sızdırıyordu. Eğer yeni bir uygulama geliştirmek zorunda olsaydım, kişisel tercihim değişiklik için geleceği korumak için tüm sorgu mantığını (bir ORM kullanarak) kapsüllemek olurdu. Depo deseni kodlama ve sürdürme konusunda oldukça zahmetlidir, bu yüzden sorunu çözmek için başka bir kalıp olup olmadığını merak ediyordum?
Gerçekte gerekmeden önce fazladan karmaşıklık eklememek, çevik olmak, vb. İle ilgili gönderiler öngörebilirim ancak yalnızca benzer bir sorunu daha basit bir şekilde çözen mevcut kalıplarla ilgileniyorum.
İlk düşüncem, uzatma yöntemleri aracılığıyla belirli tip depo sınıflarına gereken yöntemleri eklediğim, ancak statik test ünitesinin statik yöntemleri çok ağrılı olduğu genel bir tür depoya sahip olmaktı. IE:
public static class PersonExtensions
{
public static IEnumerable<Person> GetRetiredPeople(this IRepository<Person> personRep)
{
// logic
}
}