इकाई फ्रेमवर्क - नेविगेशन संपत्ति को मैन्युअल रूप से जोड़ें


115

मैंने अपने डेटाबेस से एक एंटिटी फ्रेमवर्क मॉडल (4.0) उत्पन्न किया। मैंने डेटाबेस को डिज़ाइन नहीं किया है और स्कीमा पर कोई नियंत्रण नहीं है, लेकिन कुछ टेबल हैं जिनमें विदेशी प्रमुख बाधाओं को परिभाषित नहीं किया गया है, लेकिन एक अंतर्निहित संबंध परिभाषित है।

उदाहरण के लिए:

मेरे पास एक टेबल है जिसे लोग कहते हैं जिसमें निम्नलिखित कॉलम हैं: GenderID RaceID

जेंडर और रेस दोनों के लिए टेबल हैं लेकिन पीपल टेबल में कोई विदेशी चाबी नहीं है।

जब मैंने मॉडल का आयात किया तो उसने इन संबंधों के लिए नेविगेशन गुण नहीं जोड़े। मैंने इसे मैन्युअल रूप से जोड़ने की कोशिश की लेकिन फ्रॉम रोल एंड टू रोल डिसेबल है। मुझे यकीन नहीं है कि खुद को कैसे जोड़ा जाए। मैं यह कैसे करु?

जवाबों:


181

युप - यह सीधा नहीं है।

यहाँ आप क्या करते हैं:

1 - डिजाइनर पर राइट क्लिक करें, जोड़ें -> एसोसिएशन

2 - एसोसिएशन और कार्डिनैलिटीज़ सेट करें (लोग * .. 1 लिंग, लोग * .. 1 रेस)

3 - मॉडल ब्राउज़र -> संघों में जाएं

4 - अपने नए बनाए गए संघों पर राइट क्लिक करें, गुण पर क्लिक करें

5 - यहां आपको कुंजी और कैस्केड विकल्पों के लिए समापन बिंदु सेट करने की आवश्यकता है। सुनिश्चित करें कि आपको समापन बिंदु सही मिले। आप अपनी निहित नौसैनिक संपत्ति के लिए यहां एक संदर्भ योग्य बाधा भी स्थापित कर सकते हैं।

6 - प्रासंगिक तालिकाओं / क्षेत्रों के लिए नेविगेशनल प्रॉपर्टी को मैप करें।

7 - अपने मॉडल को वैधता दें, अपनी उंगलियों को पार करें।

उम्मीद है की यह मदद करेगा।


20
मेरे बालों में क्या बचा है, इसे बचाने के लिए +1। मैं जोड़ूंगा # 6 एसोसिएशन के गुण पृष्ठ में विदेशी कुंजी कॉलम को बदलने की आवश्यकता है, रेफ़रेन्शियल कांस्ट्रेक्ट सेटिंग। हिट [...] को संदर्भित करने योग्य बाधा संवाद को खोलने और डमी क्षेत्र को बदलने के लिए कि डिजाइनर ने डिपेंडेंट प्रॉपर्टी के तहत बच्चे की तालिका में प्लग किया।
जोएल ब्राउन

8
आपको चाइल्ड टेबल की संपत्तियों पर भी जाना होगा और डिज़ाइनर द्वारा जोड़े गए डमी फ़ील्ड को हटाना होगा (और जो चाइल्ड टेबल में किसी वास्तविक फ़ील्ड को मैप नहीं करता है)।
जोएल ब्राउन

2
दृश्य के मामले में, यह भी सुनिश्चित करें कि आपको अपनी प्राथमिक कुंजी परिभाषा सही मिलती है (राइट क्लिक से संबंधित फ़ील्ड चुनें, उन्हें गुणों में EntityKey के रूप में चिह्नित करें)। अन्यथा आपको 'मल्टीप्लसिटी इन रिलेशनशिप इन रोल' मान्य नहीं है क्योंकि डिपेंडेंट रोल प्रमुख गुणों को दर्शाता है ... '
मिकल एक्स

1
# 2 पर, आप "एंटिटी में विदेशी प्रमुख गुण जोड़ें" चेकबॉक्स को अनचेक करना सुनिश्चित कर सकते हैं। अगर आपको वास्तव में इसकी आवश्यकता नहीं है तो कुछ अनावश्यक सिरदर्द पैदा करता है।
एन्क्रिप्शन

एक बार जब आप डेटाबेस से अपने मॉडल को फिर से अपडेट करते हैं, तो मचान वाली इकाइयां मैन्युअल रूप से जोड़े गए एसोसिएशन को बनाए रखेंगी?
voodoo_patch

45

मैं इस ब्लॉग पोस्ट पर आया , जो निम्नलिखित समाधान का प्रस्ताव करता है, जिसने मेरे लिए बहुत अच्छा काम किया (दुर्भाग्य से मैं RPM1984 को अपनी स्थिति में काम करने के लिए नहीं मिला)।

  1. डिजाइनर पृष्ठभूमि के माध्यम से एसोसिएशन जोड़ें संदर्भ मेनू पर राइट क्लिक करें
  2. अपनी एसोसिएशन स्थापित करें (विदेशी कुंजी के निर्माण को अनचेक करना सुनिश्चित करें)
  3. एसोसिएशन पर राइट क्लिक करें और गुण चुनें
  4. ...Referential Constraint के बटन पर क्लिक करें
  5. कुंजी के बीच संबंध स्थापित करें
  6. सत्यापित करें (डिजाइनर संदर्भ मेनू से)
  7. ???
  8. फायदा!

4
+1 पॉइंट 4 ने मुझे सही किया, अनदेखी की कि RPM194 उत्तर के साथ।
ह्यूगो लोगमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.