मुझे सिर्फ एक ORM को स्विच करना पड़ा है और यह एक अपेक्षाकृत कठिन काम था, क्योंकि क्वेरी लॉजिक हर जगह लीक हो रहा था। अगर मुझे कभी भी एक नया एप्लिकेशन विकसित करना होता, तो मेरी व्यक्तिगत पसंद बदलाव के लिए भविष्य के लिए सभी क्वेरी तर्क (ORM का उपयोग करके) को इनकैप्सुलेट करना होगा। रिपॉजिटरी पैटर्न कोड को बनाए रखने के लिए काफी परेशानी है और इसलिए मैं सोच रहा था कि क्या समस्या को हल करने के लिए कोई अन्य पैटर्न है?
मैं इससे पहले कि वास्तव में ज़रूरत हो, चुस्त होने आदि के लिए अतिरिक्त जटिलता को जोड़ने के बारे में पोस्ट नहीं कर सकता, लेकिन मैं केवल मौजूदा पैटर्न के बारे में दिलचस्पी लेता हूं जो एक समान समस्या को सरल तरीके से हल करता है।
मेरा पहला विचार एक सामान्य प्रकार का भंडार था, जिसमें मैं विस्तार विधियों के माध्यम से विशिष्ट प्रकार के रिपॉजिटरी वर्गों के लिए आवश्यक तरीकों को जोड़ता हूं, लेकिन स्थिर तरीकों का परीक्षण करने वाली इकाई भयानक रूप से दर्दनाक है। अर्थात:
public static class PersonExtensions
{
public static IEnumerable<Person> GetRetiredPeople(this IRepository<Person> personRep)
{
// logic
}
}