2013-12-18 6 views
6

यह एक समस्या है जबकि .NET में Edmx बनाना, डेटाबेस के एडीएमएक्स बनाने पर केवल उन टेबल्स और विचार जोड़े गए हैं जिनके पास प्राथमिक कुंजी थी।
यह समस्या आसानी से हल हो गई है लेकिन तालिका या दृश्य में केवल कॉलम प्राथमिक कुंजी बना रही है, लेकिन मुझे वास्तविक कारण नहीं मिला कि यह आवश्यक क्यों है ??
क्या कोई इसके पीछे कारण बता सकता है?
एडीएमएक्स को प्राथमिक_की की आवश्यकता है?

+2

जब आप अपडेट करते हैं (या उस मामले के लिए हटाए जाते हैं) किसी ऑब्जेक्ट का ट्रैक रखने के लिए इसका उपयोग किया जाता है, तो यह ऑब्जेक्ट EF _identifies_ है। –

+0

okkk @BenjaminGruenbaum मुझे यह मिला कि एक मूर्ख सवाल है लेकिन मुझे –

+0

का कारण कभी नहीं पता है, यह एक मूर्ख सवाल नहीं है, अगर मैं दैनिक मतदान सीमा से पहले नहीं था तो मैं इसे उखाड़ फेंक दूंगा। मैं उन लोगों से कुछ दिलचस्प उत्तरों की प्रतीक्षा कर रहा हूं जो वास्तुकला को मुझसे बेहतर जानते हैं (मैंने बस कुछ समय पहले ब्लॉग पोस्ट में पढ़ा था)। –

उत्तर

2

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

उदाहरण के लिए, एंटीटी फ्रेमवर्क की विशेषताओं में से एक चेंज ट्रैकिंग है, जो Dictionary<EntityKey, EntityEntry> के रूप में परिभाषित संग्रहों की श्रृंखला में जोड़ा गया, हटाया गया, संशोधित और अपरिवर्तित इकाइयों का संग्रह रखता है। प्रभावी रूप से उन संग्रहों को संभालने में सक्षम होने के लिए, उन संग्रहों को समय-समय पर आवश्यक सीआरयूडी संचालन करने की कुंजी की आवश्यकता होती है, और नतीजतन, इसे उस कुंजी की आवश्यकता होती है।

अद्यतन:

वहाँ भी बिना चाबी वस्तुओं के लिए एक संग्रह के रूप में अच्छी तरह से है, लेकिन यह Dictionary<object, EntityEntry> जो लुकअप के लिए भयानक प्रदर्शन के रूप में कुंजी डाली जा करने की आवश्यकता होगी (या अनबॉक्स्ड है के रूप में परिभाषित है कुंजी एक है अगर मूल्य प्रकार) इसके लिए उपयोग करने योग्य है।

+0

धन्यवाद यह वास्तव में सहायक है –

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