2010-04-06 13 views
5

इकाई फ्रेमवर्क 4.0 में टी 4 टेम्पलेट का उपयोग करके पीओसीओ बनाकर कोई ढीला क्या करता है? पीओसीओ बनाने के लिए इकाई फ्रेमवर्क 4.0 का उपयोग करते समय डिफ़ॉल्ट व्यवहार क्यों होता है?इकाई ढांचा POCO

उत्तर

3

आप कई चीजें खो देते हैं। एक "शुद्ध" पीओसीओ ओआरएम में सीमित उपयोग का है, क्योंकि यह परिवर्तन ट्रैकिंग नहीं करेगा। दूसरे शब्दों में, जब आप ऑब्जेक्ट को म्यूट करते हैं और फिर संदर्भ में परिवर्तनों को सहेजते हैं, तो आप बदले गए गुण डेटाबेस में सहेजे गए हैं। एक "शुद्ध" पीओसीओ के साथ आप स्नैपशॉट आधारित परिवर्तन ट्रैकिंग के साथ ऐसा कर सकते हैं, जो काफी अक्षम है। आप इसे रनटाइम प्रॉक्सी के साथ भी कर सकते हैं, जो आपको अपने ट्रैक गुण public virtual बनाने के लिए मजबूर करता है, इसलिए आप तर्कसंगत रूप से "पॉको" नहीं रखते हैं। इसके अलावा, प्रॉक्सी का उपयोग करना मतलब है कि आप उदाहरण के सही रनटाइम प्रकार को नहीं जानते हैं।

आप EntityState जैसी कुछ सुविधा गुण भी खो देते हैं।

"शुद्ध" पीओसीओ आलसी लोडिंग नहीं कर सकता है। फिर, आप प्रॉक्सी प्रकारों के साथ इस पर काम कर सकते हैं, लेकिन, फिर, यदि आप प्रॉक्सी का उपयोग कर रहे हैं, तो आपके पास वास्तव में "शुद्ध" पॉको नहीं है।

इस सब के शीर्ष पर, कुछ अन्य ओआरएम की तुलना में इकाई फ्रेमवर्क में पीओसीओ इकाइयों का उपयोग करने की आवश्यकता कम है। ऐसा इसलिए है क्योंकि आप पहले इकाई इकाई को भौतिक बनाने के बिना LINQ का उपयोग करके अपने इकाई प्रकारों को पीओसीओ उदाहरणों पर प्रोजेक्ट कर सकते हैं। तो "शुद्ध" पीओसीओ हमेशा एक इकाई फ्रेमवर्क आवेदन में उपलब्ध होते हैं, भले ही आप अपनी संस्थाओं को इस तरह मैप करने के लिए न हों।

+0

क्या आप गैर पॉको के साथ यूनिट परीक्षण पर टिप्पणी कर सकते हैं? – rkrauter

+1

गैर-पीओसीओ के साथ यूनिट परीक्षण ठीक काम करता है। मेरे लिए बिल्कुल कोई समस्या नहीं है। –

+0

प्रतिक्रिया के लिए धन्यवाद! – rkrauter

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