9

मैं ईएफ 4 में विरासत मैपिंग को समझने की कोशिश कर रहा हूं।इकाई फ्रेमवर्क 4 - विरासत

मेरे डेटाबेस निम्नलिखित संरचना के साथ दो तालिकाओं है:

PersonCategory तालिका:

  • CategoryID (int) (पहचान) (पी)
  • CategoryType (nvarchar (50))

व्यक्ति तालिका

  • PersonID (int) (पहचान) (पी)
  • CategoryID (PersonCategory मेज से FK)
  • नाम (nvarchar (50))
  • विवरण (nvarchar (अधिकतम))

पर्सन कैटलॉग टेबल में चार प्रविष्टियां हैं जो प्रत्येक श्रेणी का प्रतिनिधित्व करती हैं - छात्र, कोर्स इंस्ट्रक्टर, कर्मचारी और सलाहकार।

articles ऑनलाइन पढ़ने से मैंने सोचा तालिका प्रति पदानुक्रम इस परिदृश्य के लिए एक उपयुक्त मॉडल होगा। तो ईएफ 4 में, मैंने व्यक्तिगत संस्थाओं से प्राप्त विरासत में चार इकाइयां (छात्र, कोर्स इंस्ट्रक्टर, कर्मचारी और सलाहकार) बनाई। इसके बाद मैंने उनमें से प्रत्येक को व्यक्ति तालिका में मैप किया और दूसरों से अलग करने के लिए प्रत्येक (उदाहरण के लिए छात्र इकाई = श्रेणी इकाई = श्रेणी इकाई = 2) के लिए एक शर्त जोड़ा। मैंने व्यक्ति तालिका से श्रेणी आईडी संपत्ति को भी हटा दिया और इसे अमूर्त वर्ग बना दिया। लेकिन मुझे निम्न त्रुटि मिल रही है क्योंकि मैंने व्यक्ति तालिका से श्रेणी आईडी संपत्ति हटा दी है।

त्रुटि 3015: तालिका व्यक्ति (CategoryID) से विदेशी कुंजी बाधा 'FK_Person_PersonCategory' तालिका PersonCategory (CategoryID) करने के लिए :: अपर्याप्त मानचित्रण: मानचित्रण टुकड़े में समस्या लाइनों 101, 108, 114, 120, 126, 133 से शुरू : कुछ एसोसिएशनसेट या एंटीटीसेट्स को पारंपरिक कुंजी पर एक विदेशी कुंजी एसोसिएशन में भाग लेने के लिए विदेशी कुंजी को मैप किया जाना चाहिए।

तालिका प्रति पदानुक्रम इस परिदृश्य के लिए उपयुक्त मॉडल है? यदि नहीं तो मुझे ईएफ 4 में इस परिदृश्य से कैसे संपर्क करना चाहिए?

उत्तर

5

संघों में भेदभाव कॉलम का उपयोग समस्याग्रस्त है। देखें: -

http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/24380ee6-4753-46a2-a3ed-b1cb2e2d161c

"प्रमुख मुद्दा एक स्तंभ है कि जब तक यह नहीं अशक्त हालत में particpates discriminator रूप में कार्य करेगा एक एसोसिएशन मैप नहीं किया जा सकता है।"

+0

पॉइंटर के लिए धन्यवाद। मैं समझाया बिंदु समझा। क्या मैं इसे समझने के लिए ईएफ 4 इस स्थिति को संभाल नहीं सकता? क्योंकि मेरे एप्लिकेशन के इकाई मॉडल में मैं चाहता हूं कि दोनों टेबल एक एसोसिएशन के साथ उपस्थित हों। मैं इस परिदृश्य से कैसे संपर्क करूं? – muruge

0

प्रति तालिका के लिए टेबल-प्रति-पदानुक्रम, एक एकल तालिका सभी प्रकार के लिए सभी कॉलम शामिल है। आपके पास दो टेबल हैं, इसलिए मैं तुरंत संदिग्ध हूं।

यदि तालिका-प्रति-प्रकार के लिए जा रहा है, तो यह सही नहीं है।व्युत्पन्न प्रकार के संपत्ति मूल्यों के लिए डेटा की आपूर्ति करने वाले व्यक्ति श्रेणी तालिका के साथ आप केवल दो प्रकार, आधार और व्युत्पन्न हो पाएंगे। लेकिन, इसे पर्सिड को विदेशी कुंजी के रूप में रखना होगा, जो यह नहीं करता है।

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

मैं एक खाली परीक्षण डेटाबेस के साथ काम करने और टीपीटी और टीपीएच मॉडल-पहले डिज़ाइन करने और स्कीमा को देखने का सुझाव दूंगा जो ईएफ आपके वांछित सेटअप के लिए बनाता है।

ल्यूक

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