2011-10-22 7 views
6

हैं ऐसा क्यों है POCO का समर्थन करने के लिए EF4, Linq2SQL या किसी अन्य डेटा मैपिंग प्रौद्योगिकियों में बहुत महत्वपूर्ण है? मैं ओओ भावना में एक पीओसीओ की अवधारणा को समझता हूं लेकिन क्या ओआरएम की बात आने पर मुझे कुछ और याद आ रहा है?क्यों POCO के EF4 के संबंध में एक अच्छी बात है, nHiberate

संपादित करें: मैं बस ORM के के संदर्भ में एक POCO की मेरी व्यक्तिगत परिभाषा जोड़ रहा: यह एक वर्ग है कि डेवलपर के रूप में एक वर्ग है कि, उत्पन्न होता है संवर्धित या व्याख्या की करने के लिए विरोध द्वारा हाथ कोडित है एक ओआरएम मानचित्रण उपकरण (जैसे विजुअल स्टूडियो के ईएफ 4 डिजाइनर) द्वारा।

कृपया मुझे ठीक कर लें मैं गलत हूँ।

उत्तर

2

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

बिना कोड पहले कोड एफई के लिए दृश्य स्टूडियो उत्पन्न करता है के साथ NHibernate या एफई कोड पहले से POCO परिभाषाओं की तुलना करें और अपने आप से पूछना सकें कि आप पढ़ सकते हैं और बनाए रखने के लिए पसंद करते हैं। (उदाहरण के लिए एक नया codebase आसपास poking है।)

+0

अच्छा बिंदु। क्या यह decoupled/maintainable तरीके और त्वरित/कोड उत्पन्न तरीके के बीच एक व्यापार है? – Brendan

+0

ईएफ-सीएफ में, आपको आम तौर पर कई अधिक उचित सम्मेलनों का पालन करने की उम्मीद है ताकि यह "स्वचालित रूप से" काम करे। यदि आपको चीजों पर अधिक नियंत्रण की आवश्यकता है, तो आपको इन सम्मेलनों को ओवरराइड करने के लिए सही एनोटेशन पर अध्ययन करना होगा। कोड जनरेशन का उपयोग करते समय, आप एक विज़ुअल डिज़ाइनर के साथ काम कर रहे हैं, और प्रॉपर्टी पैनल आपको दिखाएगा कि आप दस्तावेज के माध्यम से मछली पकड़ने के बजाय एक नज़र में क्या अनुकूलित कर सकते हैं और अव्यवस्था को फिर से-सादे-सीओएस-अब में पुन: पेश नहीं कर सकते । – millimoose

2

आमतौर पर आप अपने कोड एक निश्चित ORM प्रौद्योगिकी पर निर्भर नहीं करना चाहती। पीओसीओ उस निर्भरता को कम करता है। यह decoupling के सामान्य सिद्धांत का सिर्फ एक अवतार है।

0

इकाई की रूपरेखा आप कस्टम डेटा वर्गों को एक साथ डेटा वर्गों खुद को किसी भी संशोधन करने के बिना अपने डेटा मॉडल के साथ उपयोग करने के लिए सक्षम बनाता है।

इसका मतलब है कि आप अपने डेटा मॉडल के साथ मौजूदा डोमेन ऑब्जेक्ट्स जैसे "सादे-पुराने" सीएलआर ऑब्जेक्ट्स (पीओसीओ) का उपयोग कर सकते हैं। जो संस्थाएं जो एक डाटा मॉडल में परिभाषित कर रहे हैं करने के लिए मैप की जाती हैं ये POCO डेटा कक्षाएं एक ही क्वेरी, सम्मिलित करें, अद्यतन के सबसे समर्थन है, और इकाई प्रकार है कि इकाई डेटा मॉडल उपकरण द्वारा उत्पन्न कर रहे के रूप में व्यवहार को हटा दें।

+1

तो क्या यह सच है कि ईएफ पीओसीओ का समर्थन करता है? – Brendan

+0

हां, यदि आप अपना "कोड पहले" अवतार का उपयोग करते हैं तो इकाई फ्रेमवर्क पीओसीओ का समर्थन करता है। – StriplingWarrior

+0

@StriplingWarrior Entity Framework ने वर्तमान कोड को पहले रिलीज़ करने से पहले पीओसीओ का समर्थन किया। मैं अब तक यह कहूंगा कि ईएफ कोड का उपयोग करने से पहले पूरी तरह से लाभ नहीं मिलेगा- पहले ईएफ मॉडल के बजाय- जहां तक ​​पीओसीओ का संबंध है। दोनों समान रूप से करने योग्य हैं। लेकिन अगर आप आरएडी में हैं, तो शुद्ध पोको को पूरी तरह से भूल जाओ ... उन्हें ईएफ में बहुत से अतिरिक्त काम और धैर्य की आवश्यकता है। – Brett

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