मैंने हाल ही में एंटीटी फ्रेमवर्क 5 पर स्विच किया है। अब, मैं मौजूदा डेटाबेस से पीओसीओ कक्षाएं उत्पन्न करना चाहता हूं और मुझे आलसी लोडिंग और परिवर्तन दोनों को बदलने की भी आवश्यकता है। तो सभी स्केलर गुण वर्चुअल के साथ ही नेविगेशन गुण होना चाहिए।किसी मौजूदा डेटाबेस से POCO प्रॉक्सी उत्पन्न करने के लिए कैसे करें
एक नया एडीओ.Net इकाई डेटा मॉडल जोड़ना एक .edmx फ़ाइल और कुछ अन्य .cs और .tt फ़ाइलों में समाप्त होता है।
सबसे पहले, मुझे आश्चर्य है कि डिफ़ॉल्ट रूप से जेनरेट किए गए पीओसीओ कक्षाएं क्यों परिवर्तन ट्रैकिंग प्रॉक्सी की आवश्यकताओं को पूरा नहीं करती हैं, यानी स्केलर गुण वर्चुअल नहीं हैं।
दूसरा, मैं प्रॉक्सी-सक्षम पॉको कक्षाओं को कैसे जनरेट कर सकता हूं?
पीएस: मैंने स्लैमा के उत्तर को अब तक का सबसे अच्छा और एकमात्र उत्तर स्वीकार कर लिया है, लेकिन मैं इसके पहले भाग से सहमत नहीं हूं। प्रतिबंध और प्रदर्शन:
प्रॉक्सी-सक्षम संस्थाओं पर प्रतिबंध के बारे में: यहाँ मेरी तर्क
Slauma प्रॉक्सी के साथ के बारे में दो समस्याओं में बात करती है कक्षाएं डीबी पहले विधि में इकाई द्वारा उत्पन्न कर रहे हैं जब फ्रेमवर्क, परिवर्तन-ट्रैकिंग प्रॉक्सी सक्षम करने के लिए कक्षाओं का पालन करने वाले नियमों को इतना महत्वपूर्ण नहीं है क्योंकि वे बिल्कुल प्रतिबंधित नहीं हैं। कौन वास्तव में परवाह करता है कि नेविगेशन संग्रह IList या हैशसेट हैं या नहीं? प्रतिबंधों के बारे में बात करना केवल तभी समझदार होता है जब एप्लिकेशन में पेरिओड डिज़ाइन किए गए क्लास होते हैं और टेबल से उत्पन्न होते हैं।
जटिल गुण डीबी में पहले समर्थित नहीं हैं। इसलिए हम उन्हें हमारी चर्चा से बाहर कर सकते हैं।
perfomrance के बारे में: the addressed article में और भी कुछ अन्य प्रयोगों मैं अध्ययन किया है अब तक के परिणाम बहुत स्नैपशॉट के पक्ष में प्रॉक्सी को अस्वीकार करने के कायल नहीं हैं। सबसे पहले, प्रयोगों की एक बड़ी संख्या ए.के.ए 10,000 पर किया गया था। यह असंभव नहीं है कि आपके आवेदन में बैच प्रक्रिया (डेटाबेस में नहीं) बड़ी संख्या में इकाइयों पर काम करती है, हालांकि बेहतर दृष्टिकोण माना जाता है जैसे संग्रहित प्रक्रिया। दूसरा, आवेदन और आवश्यकताओं के प्रकार के आधार पर, हम आम तौर पर उदाहरण के लिए कुछ संख्याओं से निपटते हैं उदाहरण के लिए जब रेपोजिटरी पैटर्न का उपयोग और उपयोग किया जाता है; प्रॉक्सी और स्नैपशॉट के प्रदर्शन के बीच कोई अंतर नहीं है। दिलचस्प बात यह है कि संबोधित प्रयोग में, गुणों के लिए समान मूल्य को फिर से असाइन करना एकमात्र मामला था जब प्रॉक्सी का प्रदर्शन नाटकीय रूप से विफल हो जाता है। लेकिन वास्तव में यह कौन करता है? परिवर्तन ट्रैकर को बार-बार सूचित करने से बचने के लिए सावधान रहना बहुत आसान है। दोबारा, इस मामले में महत्वपूर्ण समस्या तब होती है जब बड़ी संख्या में प्रवेश करने वालों का सामना किया जाता है।
आपकी प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मैं आपके उत्तर के पहले भाग से सहमत नहीं हूं और मैंने तर्कों को दर्शाने के लिए अपना प्रश्न अपडेट किया है। हालांकि, दूसरा हिस्सा बहुत उपयोगी था। मैं कोड-फर्स्ट मॉडल से अवगत हूं लेकिन यह मेरी चिंता का नहीं है। – Alireza
@ एलीरेज़ा: आंशिक रूप से मैं पहले भाग के आपके आलोचक से सहमत हूं। मैं अपने आप को ट्रैकिंग ट्रैकिंग प्रॉक्सी का एक प्रशंसक रहा हूं (http://stackoverflow.com/a/7112470/270591) और वे मेरी परियोजनाओं में से एक में एक जीवन बचतकर्ता थे। आर्थर विकर के लेख प्रकाशित होने के बाद मैं उनका उपयोग करने में थोड़ा और सावधान हो गया हूं। पहले भाग में कम या ज्यादा सिर्फ एफई टीम के दृष्टिकोण का एक उद्धरण कारण है कि वे शायद अदिश गुण जब नए T4 टेम्पलेट्स Pocos बनाने से 'virtual' संशोधक को हटा दिया है समझाने के लिए किया गया था। – Slauma
शायद वे आपके जैसा कह रहे थे, लेकिन फिर भी वे प्रॉक्सी को पुन: सक्षम करने के तरीके सिखा सकते थे। यह माइक्रोसॉफ्ट द्वारा इतनी चुपचाप किया गया था कि कोई सोच सकता है कि प्रॉक्सी में एक बग है। – Alireza