6

मैं अपने edmx पर निम्नलिखित संस्थाओं मिल गया है: -। alt textहोने गंभीर समस्याओं :(

इन दो entites डाटाबेस से द्वारा अद्यतन मॉडल उत्पन्न किया गया

अब , नोटिस अपने देश निम्नलिखित प्राथमिक कुंजी है कैसे: -

नाम & IsoCode

ऐसा इसलिए है क्योंकि प्रत्येक देश नाम और आईसोकोड द्वारा सिस्टम में अद्वितीय है।

अब, मेरे राज्यों के साथ ... यह समान है। प्राथमिक कुंजी है: -

नाम & countryID

प्रत्येक राज्य के नाम से और देश के आधार अद्वितीय है।

अब, राज्यों के लिए विदेशी कुंजी एक देश आईडी है। यह एसक्यूएल है: -

ALTER TABLE [dbo].[States] WITH CHECK ADD 
     CONSTRAINT [FK_States_Countries] FOREIGN KEY([CountryId]) 
REFERENCES [dbo].[Countries] ([CountryId]) 
ON UPDATE CASCADE 
GO 

ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries] 
GO 

सुंदर साधारण सामान।

लेकिन EntityFramework यह :(यह मानते हुए कि मैं Country इकाई में दोनों प्राथमिक कुंजी गुणों के State संस्था से कुछ गुण कनेक्ट करने की आवश्यकता पसंद नहीं है।

देश और के बीच एक संबंध जोड़ने के लिए क्या यह संभव है Country.CountryId < पर राज्य -> ​​State.CountryId ... की तरह मैं अपने DB में मैप किया है

चीयर्स;)

+0

@ एलेक्स जेम्स: क्या आप मदद करने के लिए चारों ओर हैं, महोदय महोदय? –

+0

हाँ ... नीचे जवाब देखें! –

उत्तर

10

एफई में (3.5 और 4.0) FKS चाहिए प्राथमिक कुंजी को इंगित?।

लेकिन आप दिखाई देते हैं एक उम्मीदवार कुंजी को इंगित करने के लिए प्रयास किए जाने की (यानी [देश]। [CountryID]

मुझे पता है कि यह कुछ एफई टीम है, हालांकि अगले संस्करण के लिए विचार कर रहे हैं :)

आशा इस मदद करता है

एलेक्स

+0

कृपया मेरे प्रश्न पर उठाए जाने के लिए कृपया एलेक्स धन्यवाद। मैं ईमानदारी से इसकी सराहना करता हूं :) ऐसा लगता है कि मैं पीके की पहचान करने और अद्वितीय बाधाओं को जोड़ने के लिए वापस जाऊंगा। दोह :) हमेशा मौजूदा ईएफ बनाता है एक कदम आगे ... :) धन्यवाद फिर दोस्त - वास्तव में आपकी मदद से प्यार है :) इसे जारी रखो! –

+4

मैंने सीटीपी 5 परिवर्तन दस्तावेज़ों को देखा और इससे संबंधित कुछ भी नहीं देखा। क्या यह सुविधा अभी भी विचार की जा रही है, या पाइपलाइन में, या ...? विरासत डेटाबेस मैपिंग के लिए यह एक वास्तविक ठोकरें ब्लॉक है। –

0

उचित डीबी सामान्य के लिए, पहली बात यह है प्राथमिक कुंजी केवल countryID और StateId होना चाहिए वह यह है कि फ़ील्ड - प्रत्येक तालिका के लिए मुख्य आईडी फ़ील्ड।

और एस एस मैं वर्णन नाम & IsoCode और नाम & countryID वास्तव में अद्वितीय कुंजी, प्राथमिक नहीं होना चाहिए से देखते हैं।

public Country Country { get; set; } 

अब एफई बहुत अच्छा उदाहरण है और 4.3.1 के बाद से + यह पूरी तरह से कोड पहले/डीबी पहला मॉडल है, जो मुझे लगता है कि कम होगा समर्थन करता है:

फिर मॉडल वर्ग राज्य एक क्षेत्र होना चाहिए इसे हल करना ईएफ 5 में अधिक संगतता अपडेट हैं इसलिए मुझे लगता है कि यह विरासत डीबी इंजनों के लिए एक समस्या नहीं होगी।

+0

जब तक मैंने आपके उत्तर को किसी भी तरह गलत समझा नहीं है - यह पूरी तरह से प्रश्न के बिंदु के बगल में है। "क्या देश पर देश और राज्य के बीच एक एसोसिएशन जोड़ना संभव है। काउंटर आईडी <-> राज्य। काउंटीरीआईडी" सवाल है - जैसा कि "क्या मैं प्राथमिक कुंजी (इस मामले में उम्मीदवार कुंजी) के अलावा किसी अन्य चीज़ पर एक एसोसिएशन जोड़ सकता हूं। " – tim

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