2010-02-08 6 views
5

एक भंडार पर काम करते समय मैं सामान्य रूप से विधि को सामान्य रखने की कोशिश करता हूं, लेकिन यह कभी-कभी लंबी विधियों को कॉल करने या सेवा परत पर अधिक विशिष्ट नामित विधियों को बनाने का कारण बन सकता है। मेरा सवाल यह है कि, आपके डोमेन के कितने ज्ञान में आपकी रेजिटरी परत होनी चाहिए?आपके डोमेन की कितनी जानकारी आपके भंडार परत में होनी चाहिए?

उदाहरण के लिए, मैं वर्तमान में एक विधि इस प्रकार है:

public User GetUniqueByRoleAndRoleProperty<TRole>(string propertyName, object propertyValue) 
    { 
     ... 
    } 

कौन सा मैं एक विशिष्ट भूमिका और संपत्ति के साथ उपयोगकर्ताओं को वापस खींचने के लिए उपयोग करते हैं, लेकिन यह भंडार बहुत अधिक ज्ञान के लिए एक विधि के लिए दे रही है किया जाएगा जैसे:

public User GetArtistBySlug(string slug) 
{ 
    ... 
} 

उत्तर

2

इसमें इसके काम को करने के लिए पर्याप्त ज्ञान होना चाहिए और नहीं। अगर "स्लग" "कलाकार" रिकॉर्ड की विशेषता है, तो स्लग द्वारा कलाकारों के लिए लुकअप करना ठीक है, क्योंकि परत पहले से ही जानता है। यदि कलाकारों के लिए स्लग का असाइनमेंट जटिल, जटिल नियमों (लगता है कि हेराल्ड्री, या ऐसा कुछ) का पालन करता है, तो रिपॉजिटरी को उनको लागू नहीं करना चाहिए, सिवाय इसके कि आपको पूरी तरह चालाक अनुकूलन का उपयोग करना है जो केवल इस स्तर पर काम करते हैं, उदा। विशेष डेटाबेस क्वेरी निर्माण।

संबंधित मुद्दे