10

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

उत्तर

4

यहां सही answer है - मेरे लिए समस्या हल हो गई है। बस अपनी कनेक्शन स्ट्रिंग का नाम बदलें जैसे कि आपका डीबीकॉन्टेक्स्ट, उदा।

 public ApplicationDbContext() 
     : base("Vocabulary.Domain.ApplicationDbContext", throwIfV1Schema: false) 
    { 
    } 

ध्यान दें कि नाम "Vocabulary.Domain.ApplicationDbContext" की तरह नेमस्पेस शामिल होना चाहिए।

<ObjectGroup Name="Vocabulary.Domain.ApplicationDbContext" Order="1" Enabled="True"> 

यह article का वर्णन करता है पर प्रकाशित करें संवाद है या के बाद से कुछ भी नहीं है जैसा कि ऊपर उल्लेख नहीं टिक "निष्पादित कोड पहले माइग्रेशन (आवेदन शुरू पर रन)"

8

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

+2

हाँ, यह मेरे साथ कई बार हुआ। और अब (जब मैंने वीएस2013 में अपग्रेड किया है), इससे कोई फर्क नहीं पड़ता कि मैं वीएस को कितनी बार पुनरारंभ करता हूं, यह "कोड-फर्स्ट माइग्रेशन निष्पादित करें" नहीं दिखाएगा। –

+0

डेटाबेस उपयोगकर्ताओं के बारे में लगभग हर चीज सीखने के बाद, एक विजुअल स्टूडियो पुनरारंभ करने के लिए काम किया, मैंने –

+0

की वजह से खुद को मारने की कोशिश की, यदि आप प्रकाशित करने की कोशिश करने के बाद @rafael मुद्दे से फंस गए हैं और फिर से मेरे लिए काम किया है तो –

1

यह मेरे साथ वीएस2013 में हुआ। न तो समाधान की सफाई, और न ही इसे पुनरारंभ करना। मैंने माइग्रेशन को "पुनः सक्षम" करने की कोशिश की और यह काम किया। भले ही मुझे एक त्रुटि संदेश मिला कि प्रोजेक्ट में माइग्रेशन पहले ही सक्षम हो चुके हैं, "निष्पादन कोड प्रथम माइग्रेशन" चेकबॉक्स फिर से दिखाई दिया।

+1

आप माइग्रेशन को "पुनः सक्षम" कैसे करते हैं? – abalter

+1

@ बाल्टर बस 'सक्षम-माइग्रेशन' फिर से करें – gldraphael

+0

चल रहे सक्षम-माइग्रेशन ने मेरे लिए फिर से काम किया –

0

है: .pubxml फ़ाइलों को अद्यतन करने के लिए मत भूलना काम किया।
मैं नीला से publish profile डाउनलोड किया है और यह दोषरहित पहली बार

0

मैं इस समस्या थी काम किया है और मेरे लिए यह किसी भी मैं कहीं और दस्तावेज मिल गया है के लिए एक अलग कारण था।

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

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

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