मेरे पास 2 इकाइयां हैं जो संबंधित हैं, लेकिन विरासत एसक्यूएल स्कीमा में एक ही तालिका के लिए अनिवार्य रूप से 2 कुंजी कॉलम हैं (2-कॉलम कुंजी नहीं: नीचे देखें)। मुझे 'गलत कुंजी' कॉलम पर रिश्ते बनाने की ज़रूरत है। क्या एंटिटी फ्रेमवर्क 4.1 में यह घोषणा करने का कोई तरीका है?इकाई फ्रेमवर्क 4.1 - गैर-कुंजी कॉलम के बीच संबंध
Public Class Client
Inherits ModelBase
<Key(), Required()>
Public Property ClientID As Decimal
<Required(), StringLength(50)>
Public Property ClientCode As String
........
Public Class ClientLocation
Inherits ModelBase
........
<Required(), StringLength(50)>
Public Property ClientCode As String
........
<ForeignKey("ClientCode")>
Public Overridable Property Client As Clients.Client
और त्रुटि मैं हो रही है: मॉडल पीढ़ी के दौरान
* एक या अधिक सत्यापन त्रुटियों का पता चला गया: System.Data.Edm.EdmAssociationConstraint: सभी गुण के प्रकार एक रेफरेंशियल बाधा की निर्भर भूमिका प्रिंसिपल रोल में संबंधित संपत्ति प्रकारों के समान ही होनी चाहिए। संपत्ति 'ClientCode' इकाई 'ClientLocation' पर के प्रकार नहीं है मैच संपत्ति के प्रकार निर्देशात्मक बाधा 'ClientLocation_Client' में इकाई 'ग्राहक' चालू 'clientid'। *
क्योंकि यह मैं सोचता ' मीटर जब मैं वास्तव में ClientLocation.ClientCode> Client.ClientCode मैप करने के लिए कोशिश कर रहा हूँ ClientLocation.ClientCode> Client.ClientID मैप करना चाहते, ...
किसी भी विचार?
धन्यवाद!
"* ... विरासत एसक्यूएल स्कीमा में एक ही टेबल के लिए अनिवार्य रूप से 2 कुंजी कॉलम हैं ... *": क्या आपका मतलब है कि 'क्लाइंट.क्लिएंटोड' डेटाबेस में एक अद्वितीय इंडेक्स वाला कॉलम है? या फिर "2 कुंजी कॉलम ... लेकिन समग्र कुंजी नहीं हैं" क्या हैं? और आप इस क्लाइंट 'क्लाइंट.क्लिएंटोड' के लिए किसी भी तरह 'ClientLocation.Client' को मैप करना चाहते हैं? – Slauma
तालिका में 2 प्रभावी कुंजी हैं, लेकिन दूसरा एक कुंजी के रूप में पहचाना नहीं गया है, और इसमें कोई अनुक्रमणिका नहीं है। उदाहरण के लिए, क्लाइंट आईडी 4 हो सकती है, और क्लाइंटकोड "फोग्रीक" हो सकता है। दोनों संबंधित या आश्रित नहीं हैं, वे दोनों अद्वितीय होने के साथ ही होते हैं। और हाँ, मुझे क्लाइंट.क्लिंटकोड का उपयोग करके मूल तालिका में वापस मैप करने की आवश्यकता है, भले ही इसे मेरी इकाई में एक कुंजी के रूप में चिह्नित न किया जाए। –
आह, मैं देखता हूं, फिर 'क्लाइंटकोड' एक सामान्य स्तंभ है। विशिष्टता व्यापारिक तर्क से गलती से सुनिश्चित की जाती है। मुझे डर है कि लादीलाव का जवाब अंतिम शब्द है। – Slauma