इसका कारण यह है कि जिस तरह से EF4 मॉडल-प्रथम के साथ काम करता है।
जब आप पहली बार एक मॉडल-पहला मॉडल बनाते हैं, तो यह ऐसी स्थिति में होता है जिसमें SSDL मौजूद नहीं होता है। आप संस्थाओं को खींच सकते हैं, उन्हें जोड़ सकते हैं और आगे और फिर भी, यदि आप ईडीएमएक्स फ़ाइल पर एसएसडीएल पर एक नज़र डालते हैं, तो आप देखेंगे कि कोई भी संस्था एसएसडीएल में संबद्ध भंडारण तालिका नहीं है।
जब आप Generate Database From Model
संदर्भ मेनू आइटम पर क्लिक करते हैं तो यह बदल जाता है । भ्रामक हिस्सा यह है कि यह क्रिया केवल DDL स्क्रिप्ट उत्पन्न करने से अधिक है। वास्तव में, यह SSDL जानकारी को शामिल करने के लिए EDMX फ़ाइल को बदलता है। इस बिंदु से, ईडीएमएक्स फ़ाइल एक राज्य में प्रवेश करेगी जिसमें डिजाइनर / सीएसडीएल में प्रत्येक इकाई को एसएसडीएल में एक इकाई के लिए मैप करना होगा। यदि कोई मैप नहीं करता है, तो यह एक संकलन समय त्रुटि को ट्रिगर करेगा:
निम्नलिखित EntitySet / AssociationSet के लिए कोई मानचित्रण निर्दिष्ट नहीं है (EntityName)
एक और दिलचस्प तथ्य यह है कि यह उस तरह की त्रुटि नहीं है जिससे संकलन रोका जा सके। यह वास्तव में, आउटपुट क्लास लाइब्रेरी उत्पन्न करेगा। यह एक चेतावनी या कुछ और नहीं होना चाहिए?
इस त्रुटि को रोकने के लिए, आपको एक नई इकाई डालने के बाद Generate Database From Model
फिर से करना होगा। यह SSDL को अपडेट करेगा और मैपिंग को ठीक करेगा।
संपादित करें
यदि आप मॉडल-प्रथम का उपयोग नहीं कर रहे हैं और आप "डेटाबेस से अपडेट" करते हैं, तो डीबी सर्वर में टेबल को डिलीट करने की स्थिति में भी आपको यह त्रुटि होगी। ऐसा इसलिए है क्योंकि Entity Framework आपके लिए इकाई को स्वचालित रूप से नहीं हटाएगा। इकाई को मैन्युअल रूप से हटाएं और त्रुटि दूर हो जाएगी।