2010-09-29 14 views
5

मैं देख रहा हूँ एक समान प्रश्न यहाँ पूछा नहीं है लेकिन मुझे नहीं लगता कि यह बहुत स्पष्ट है तो मैं एक और बना रहा हूं था: Entity Framework: Inheritance, change object typeइकाई में पारंपरिक रूप से प्राप्त प्रकार बदलने फ्रेमवर्क

मैं एक इकाई छात्र है कि एक इकाई से विरासत है व्यक्ति।

किसी बिंदु पर एक व्यक्ति छात्र बन सकता है।

क्या एंटिटी फ्रेमवर्क 4 में संग्रहीत प्रक्रिया के बिना इसे संभालने या नई इकाई बनाने के लिए कोई तरीका है।

+1

यह एक टूटा ऑब्जेक्ट मॉडल है। ओओपी में, उदाहरण प्रकार बदल नहीं सकते हैं। ईएफ इस सुविधा को सी #/.NET में नहीं जोड़ता है। इसके लिए आपको संरचना का उपयोग नहीं करना चाहिए, विरासत नहीं। –

+0

मैं इस धारणा के तहत था कि यह एक छात्र है या कोई छात्र एक व्यक्ति है या नहीं। शायद आप मुझे एक लिंक पर इंगित कर सकते हैं जहां यह परिभाषित किया गया है? –

+0

किसी ऑब्जेक्ट में केवल एक प्रकार हो सकता है। तो आप एक प्रकार 'रेडडॉग' नहीं बना सकते हैं और एक प्रकार 'बिगडॉग' भी बना सकते हैं, क्योंकि 'कुत्ता' बड़ा * और * लाल (क्लिफोर्ड) दोनों हो सकता है। मैंने यहां इस मुद्दे के बारे में लिखा: http://blogs.teamb.com/craigstuntz/2008/07/17/37825/ –

उत्तर

6

नहीं। ईएफ विरासत इस परिदृश्य का समर्थन नहीं करती है। छात्र को मौजूदा व्यक्ति के लिए संग्रहीत प्रक्रिया का उपयोग करने का सबसे अच्छा तरीका है।
कृपया ध्यान दें कि यह संग्रहीत प्रक्रिया नहीं है जो मैपिंग के माध्यम से छात्र इकाई तक तारित है, लेकिन एक अलग जिसे कोड से स्पष्ट रूप से कहा जा सकता है। आदर्श रूप में यह एक सपा है कि एक एक पैरामीटर के रूप PersonID लेता है, छात्र का उपयोग कर कि PersonID तालिका में एक नई पंक्ति सम्मिलित करता है, और फिर रिटर्न एक पूरा छात्र इतना है कि यह तुरंत इस्तेमाल किया जा सकता होगा।

+0

बस इसके द्वारा जला दिया गया। एक घंटा चला जाता है मैं कभी वापस नहीं आऊंगा! – Paul

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