2011-01-06 15 views
16

एंटीटी फ्रेमवर्क के लिए नौसिखिया को ठीक से कैसे हटाएं और दोबारा जोड़ें। वीएस 2010 और एसक्यूएल सर्वर 2008 एक्सप्रेस डीबी का उपयोग करना।एंटिटी डेटा मॉडल

मुझे नई टेबल जोड़ने के बाद एक इकाई डेटा मॉडल को रीफ्रेश करने में समस्या हो रही थी। इसलिए, मैंने मॉडल को हटाने और पुन: उत्पन्न करने के लिए यहां एक सुझाव का पालन किया।

मैं एंटिटी डेटा मॉडल विज़ार्ड के "अपना डेटा कनेक्शन चुनें" अनुभाग प्राप्त करता हूं और "Web.config में इकाई कनेक्शन सेटिंग्स को इस प्रकार से सहेजें:" चेक किया गया है। हालांकि, मेरे मौजूदा नाम में 1 जोड़ा गया है। उदाहरण के लिए MyDatabaseEntities अब MyDatabaseEntities1 है। बेशक, मैं नहीं चाहता कि "1" जोड़ा जाए। मैंने Web.config में मौजूदा कनेक्शन स्ट्रिंग को मार दिया और मेरे समाधान में उस नाम के सभी संदर्भ हटा दिए। फिर भी जारी रखने के लिए जब मैं कोशिश मैं निम्न त्रुटि के साथ प्रस्तुत कर रहा हूँ:

मैं एक नहीं मिल सकता है "। ऐप्लिकेशन सेटिंग में किसी मौजूदा प्रॉपर्टी नाम के साथ 'MyDatabaseEntites' संघर्ष कृपया कोई अन्य नाम चुनें" समाधान में कहीं भी उस नाम का संदर्भ। मैं उस विकल्प को अनचेक कर सकता हूं और यह जारी रहेगा, लेकिन यह अभी भी डेटाबेस में दो तालिकाओं को नहीं जोड़ देगा। इसके बाद, मैंने पूरी तरह से सबकुछ बंद कर दिया, रीबूट किया, और फिर कोशिश की। इस बार मुझे उपरोक्त त्रुटि नहीं मिली, लेकिन मेरी तीन नई टेबलों में से दो अभी भी एडीएमएक्स मॉडल में नहीं जुड़ पाए हैं।

किसी भी विचार की सराहना की जाती है। ऐसा लगता है कि यह अभी भी VS2010/.NET 4 में भी बहुत छोटी है। मेरा विश्वास बहाल करने में सहायता करें ... मुझे इस बिंदु पर एंटीटी फ्रेमवर्क छोड़ना पसंद है। मेरे अनुभव के आधार पर और यहां पोस्ट किए गए कुछ अन्य मुद्दों के आधार पर, मुझे लगता है कि मैं उपयोगी कोड लिखने की तुलना में इकाई फ्रेमवर्क अजीबता का पीछा करने में अधिक समय व्यतीत करने जा रहा हूं।

अद्यतन: मुझे एक प्रस्ताव मिला। डिजाइनर त्रुटियों को प्रदर्शित नहीं करता है। त्रुटियों को देखने के लिए आपको मूल XML (edmx फ़ाइल) में देखना होगा। यहां देखें: ADO.NET Entity Framework: Update Wizard will not add tables

+0

एप्लिकेशन सेटिंग्स में मौजूदा संपत्ति नाम के साथ "माईडेटाबेस एंटीसाइट्स" संघर्षों पर टिप्पणी करने के लिए कृपया एक अलग नाम चुनें ": ऐसा लगता है कि वीएस दिखता है नाम के बाद पूरे समाधान के लिए सभी .config फ़ाइलें, न केवल उस परियोजना से संबंधित है जिस पर डेटा मॉडल जोड़ा जा रहा है। तो आपको समाधान में सभी .config फ़ाइलों से सेटिंग को हटाना होगा। –

+0

[एडीओ.NET इकाई फ्रेमवर्क का संभावित डुप्लिकेट: अपडेट विज़ार्ड टेबल नहीं जोड़ देगा] (http://stackoverflow.com/questions/543971/ado-net-entity-framework-update- जादूगर- will-not-add-tables) – rcdmk

+0

वेब कॉन्फ़िगरेशन फ़ाइल से सभी मौजूदा कनेक्शन स्ट्रिंग हटाएं और एप्लिकेशन बनाएं। अब आप मौजूदा संपत्ति नामों का उपयोग कर सकते हैं। –

उत्तर

1

मुझे आपकी समस्या का विशिष्ट उत्तर नहीं पता है, लेकिन मुझे लगता है कि मैं इस दृष्टिकोण को साफ़ करने वाले दृष्टिकोण की सिफारिश कर सकता हूं।

मैं आम तौर पर एक अलग पुस्तकालय में अपना ईएफ काम तोड़ देता हूं। अगर मैं साइबरडीन पर काम कर रहा हूं। टर्मिनेटर, मैं साइबरडीन नामक ईएफ क्लास लाइब्रेरी बनाती हूं। टर्मिनेटर.डाटा। इस तरह, यदि आप मॉडल को उड़ाना और शुरू करना चाहते हैं, तो सब कुछ आपकी निर्भर फाइलों से अलग है, और विशेष रूप से, आपका web.config।

इनमें से कोई भी अनुपलब्ध तालिकाओं को ठीक करने की संभावना नहीं है। एक चीज मैंने देखा है कि ऐसा होता है अगर मैं एक टेबल जोड़ता हूं, और फिर इसे हटा देता हूं। यह फिर से "तालिका जोड़ें" संवाद में दिखाई नहीं देगा (और इसे दिखाने के लिए आपको इसका नाम बदलना होगा)। लेकिन मैंने सोचा कि ईएफ 4.0 में तय किया गया था। पता नहीं। यदि समस्या बनी रहती है तो आप तालिका को नाम बदलने का प्रयास कर सकते हैं, इसे फिर से जोड़ सकते हैं, और फिर इसे दिखाए जाने पर इसे फिर से नामित कर सकते हैं।

ईएफ सुनिश्चित करने के लिए गधे में दर्द है। केवल एक चीज जो मैं आपको बता सकता हूं वह है कि मुझे आम तौर पर इन सिरदर्दों के माध्यम से काम करना पड़ता है, समस्या सीखती है, और कभी भी उनसे परेशान नहीं होती है। यदि आप ईएफ नहीं खड़े हो सकते हैं, तो आप एनएचबेर्नेट को भी देख सकते हैं - मेरे पास भी इसका एक बहुत ही मजबूत प्रभाव है।

+1

क्रिस प्रतिक्रिया के लिए धन्यवाद। यह अलग पुस्तकालय पर एक अच्छा सुझाव है। मुझे यहां मेरे मुद्दे पर एक प्रस्ताव मिला: http://stackoverflow.com/questions/543971/ado-net-entity-framework-update- जादूगर- will-not-add-tables मुझे पोस्ट करने से पहले थोड़ा और खोजना चाहिए था । – David

+0

वाह ... वह पागल है। यह वास्तव में एक्सएमएल में दफन करने के बजाय एक पॉपअप संदेश होना चाहिए। –

15

त्रुटि "app.config" फ़ाइल में सेटिंग्स (देखें समाधान एक्सप्लोरर) में बचे हुए कनेक्शन तार के कारण होता है और यह इस खंड में बताया गया है: "ConnectionStrings" (कोण कोष्ठक से घिरा हुआ)

बस से हटा क्या आप वहां मौजूद हैं।

+1

मैंने अपनी कनेक्शन स्ट्रिंग हटा दी लेकिन अभी भी त्रुटि संदेश प्राप्त हो रहा था। वीएस – user65439

+0

को पुनरारंभ करना पड़ा, मुझे यह समस्या वीएस 15 में मिल रही है हालांकि मेरे web.config में कोई कनेक्शनस्ट्रिंग नहीं है और मेरे पास कोई app.config नहीं है। – xiimoss

3
  1. यदि आप वेब ऐप विकसित करते हैं तो IIS पुनरारंभ करें।
  2. पुनः प्रारंभ दृश्य स्टूडियो के लिए EntityDataModel कनेक्शन web.config से स्ट्रिंग रेखा या app.config
  3. नई इकाई Data Model जोड़ें और पुराने नाम की तरह इसका नाम बदलना,
-2

im खेद को हटाने के बाद मेरी अंग्रेजी लेकिन समाधान बस है। आप तो ado.net को हटाना होगा, app.conf और कनेक्शन स्ट्रिंग <>, डीबग अपनी परियोजना हटा सकते हैं और अंत में ado.net

TO ADD ADO.NET 
RIGHT CLICK ON YOUR PROJECT NAME, THEN, ADD NEW ITEM, DATA AND SEARCH ADO.NET... 

I hope help you, have good day! 
angelsantacruzm 
0

डबल अपने कनेक्शन की जांच के माध्यम से नए डेटाबेस को जोड़ने के लिए जाना तार, और दाईं ओर स्क्रॉलिंग रखें। अक्सर, जब यह मेरे साथ होता है, विजुअल स्टूडियो ने दूसरे के पीछे एक कनेक्शन स्ट्रिंग जोड़ दी है। मैंने इसे दो बार किया है, और मुझे आश्चर्य हुआ कि मेरी ऐप कॉन्फ़िगरेशन कहाँ थी (नहीं, कोई एप कॉन्फ़िगर नहीं है, बस एमवीसी में वेब कॉन्फ़िगरेशन), इसलिए संवाद थोड़ा उलझन में है। निश्चित रूप से पर्याप्त है, सबसे अधिक संभावना है कि कनेक्शन स्ट्रिंग सीधे दूसरे के पीछे छिप रहा है!

0

बस

Ctrl+F

कुंजियाँ दबाएँ और ड्रॉपडाउन सूची में चयन 'EntireSolution/CurrentProject', फिर Enter दबाएं। जहां कभी भी यह नाम उत्पन्न हुआ यह आपको दिखाएगा। मुझे वेब.config फ़ाइल में मिलता है। तो वहां से जेनरेट की गई पूर्ण कनेक्शन लाइन को हटा दें। और फिर इसे फिर से जोड़ें। तो आशा है कि आपको यह संदेश दोबारा नहीं मिल सकता है.धन्यवाद ..

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