2010-07-31 16 views
6

यह एक अजीब सवाल है जो मुझे पता है :)रिपोजिटरी पैटर्न, स्पष्ट या निहित बचत?

मैं वास्तव में चीजों को सही तरीके से करना पसंद करता हूं और मुझे संदेह है।

मैं एक इंटरफेस बनाने, डि उपयोग के बारे में पता है ...

मेरा प्रश्न है:

"SaveChanges" आप मैन्युअल रूप से कॉल करने के लिए है कि जैसे एक विधि है करने के लिए बेहतर है हर आप जोड़ना/हटाना/जो भी वस्तु है ?:

_repo.Add(blah); 
_repo.SaveChanges(); 

या डेटा को संशोधित करने वाली प्रत्येक विधि के भीतर परिवर्तनों को सहेजना बेहतर है?

दूसरी ओर, क्या मुझे कनेक्शन हमेशा खोला जाना चाहिए या क्या मुझे इसे बंद करना चाहिए?

मैं डीबी 4 ओ सीख रहा हूं और मेरे पास एक बंद विधि है जिसे मैं कॉल करता हूं जब मुझे किसी अन्य स्थान पर रेपो का उपयोग करना पड़ता है (जैसे अन्य विंडो में, मैं खिड़की खोलने से पहले बंद करता हूं)।

धन्यवाद।

उत्तर

2

मुझे व्यक्तिगत रूप से अलग करने के लिए SaveChanges विधि पसंद है। मुझे लगता है कि यह उपभोग करने वाले अनुप्रयोगों में अधिक लचीलापन की अनुमति देता है। जिसका अर्थ है कि इसका अधिक उपयोग हो सकता है।

उदाहरण के लिए, इसे अलग करने से 'लेनदेन' दृष्टिकोण की अनुमति मिलती है जहां भंडार को लगातार संशोधित किया जा सकता है और फिर यदि सब कुछ स्वीकार्य है तो सहेजने की विधि कहा जाता है।

दूसरी तरफ, यदि आप बिना किसी अलग कॉल के तुरंत सहेजना चाहते हैं, तो आप रिपोजिटरी का एक और संस्करण बना सकते हैं जो सीआरयूडी परिचालन के दौरान सहेजने वाली विधि को कॉल करता है।

+0

पर्याप्त मेला, मैं समझता हूं कि विधि कब रखनी है या नहीं। धन्यवाद। –

0

मुझे लगता है कि नेट डेटासेट में वे नवीनतम डेटा संशोधनों को "प्रतिबद्ध" करने के लिए AcceptChanges() फ़ंक्शन का भी उपयोग करते हैं। ओरेकल डेटाबेस में भी इसी तरह के कार्य के लिए एक COMMIT कमांड है।

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