2010-06-02 18 views
10

मैं एक विरासत डेटा बेस और दो तालिकाओं के बीच एक रिश्ता एक-से-एक है के साथ। बात यह है कि संबंध दो स्तंभों का उपयोग करता है, एक नहीं। क्या निषेध में कहने का कोई तरीका है कि जब संदर्भित इकाई प्राप्त होती है तो इसमें शामिल होने वाले कथन में दो कॉलम का इस्तेमाल होता है, एक नहीं? मैं एक ऐसी ही तालिका संरचनाकई-से-एक एकाधिक स्तंभों

TaskProgress

  • ProgressId
  • TaskId है
  • AssignmentId
  • UserId

कार्य

  • TaskId
  • AssignmentId
  • TaskName

प्रत्येक कार्य अलग कार्य में asigned जा सकता है। इसका मतलब है कि कार्य प्रगति के लिए अद्वितीय कार्य केवल AssignmentId और TaskId फ़ील्ड द्वारा स्थापित किया जा सकता है। कैसे एकाधिक स्तंभों के आधार पर संयोजन मैप करने के लिए

References(x => x.Template) 
      .Columns() 
      .PropertyRef() 

लेकिन नहीं मिल सकता है, किसी भी विचार:

मैं इस का उपयोग करने की कोशिश कर रहा हूँ?

उत्तर

5

मैं नमूना कोड में PropertyRef का उपयोग उस दो कॉलम एक समग्र प्राथमिक कुंजी फार्म नहीं है से संभालने हूँ। यदि ऐसा है, तो आप भाग्य से बाहर हैं क्योंकि संपत्ति-रेफरी केवल एक संपत्ति स्वीकार कर सकती है। issue NH-1722 में टिप्पणियों के आधार पर, यह कार्यक्षमता स्पष्ट रूप से हाइबरनेट में उपलब्ध है लेकिन इसे NHibernate पर पोर्ट नहीं किया गया है।

अद्यतन: आपके द्वारा जो स्कीमा जोड़ा गया है, वह कार्य और असाइनमेंट के बीच अतिरिक्त डेटा संबंधों के साथ कई लोगों की तरह दिखता है। कार्य प्रगति कार्य और असाइनमेंट के बीच लिंक तालिका है। यदि टास्क प्रोग्रेस में अतिरिक्त UserId फ़ील्ड नहीं था तो आप इसे एक से अधिक सरल के रूप में मॉडल कर सकते हैं। क्योंकि लिंकिंग टेबल में अतिरिक्त डेटा है, यह थोड़ा और जटिल हो जाता है।

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

+0

कोई वैकल्पिक हल हो सकता है सूत्र उपयोग है? – Sly

+0

कोई भी जिसे मैं जानता हूं। लेकिन क्या आपके पास वास्तव में 1: 1 संबंध है जो प्राथमिक कुंजी से संबंधित नहीं है? क्या आप समस्या को स्पष्ट करने के लिए पर्याप्त टेबल परिभाषा पोस्ट कर सकते हैं? –

+0

मैंने अधिक जानकारी प्रदान करने के लिए प्रारंभिक पोस्ट अपडेट किया है – Sly

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