2013-09-16 8 views
5

मैं आज तक सफलतापूर्वक Entity framework 6.0.0-alpha3 चला रहा था। आज मैंने Entity framework 6.0.0-rc1 पर अपडेट करने का निर्णय लिया है, और मेरे माइग्रेशन को चलाने के लिए निर्दिष्ट here के रूप में मुझे ef alpha1-alpha3 द्वारा बनाए गए सभी पिछले माइग्रेशन को हटाने और उन्हें रीमेक करने की आवश्यकता है।इकाई फ्रेमवर्क माइग्रेशन किसी भी बदलाव का पता नहीं लगा रहा

चूंकि मेरे सभी माइग्रेशन alpha3 द्वारा बनाए गए थे, इसलिए मैंने सभी माइग्रेशन (_MigrationHistory तालिका सहित) को छोड़ने का निर्णय लिया, और इसे पुनः सक्षम कर दिया।

मैं add-migration Initial -IgnoreChanges साथ आरंभिक माइग्रेशन बनाया (जो खाली Up() और Down() तरीकों है), तो मैं update-database मार डाला, और मैंने सोचा, कि सब कुछ ठीक है। अच्छा, इसकी नहीं। जब मैं अपने मॉडल में नई कक्षा जोड़ रहा हूं, add-migration first खाली Up() और Down() विधियों के साथ माइग्रेशन बनाता है।

इसके अलावा, पहले, जब मैं उस ऑब्जेक्ट को एक्सेस करना चाहता था जो अभी तक माइग्रेशन के साथ पंजीकृत नहीं था, तो मुझे यह कहते हुए एक त्रुटि प्राप्त हुई कि मुझे अपने माइग्रेशन को अपडेट करने की आवश्यकता है। अब, जब मैं नई वस्तु तक पहुंचने का प्रयास करता हूं, तो यह बस "Invalid object name 'dbo.Notifications'." कहता है।

अब मैं क्या करूँ?

उत्तर

6

ईएफ आपके डेटाबेस मॉडल और अंतिम माइग्रेशन के वर्तमान संस्करण के बीच परिवर्तन निर्धारित करने के लिए डेटाबेस मॉडल (जो माइग्रेशन के साथ सहेजा गया है) का एक स्नैपशॉट का उपयोग करता है।

add-migration Initial -IgnoreChanges कमांड आपके डेटाबेस मॉडल के स्नैपशॉट के साथ माइग्रेशन बनाता है, लेकिन यह पिछले डेटाबेस स्नैपशॉट (यानी खाली डेटाबेस) से किसी भी बदलाव को अनदेखा करता है क्योंकि आप ऐसा करने के लिए कह रहे हैं।

कमांड पिछले माइग्रेशन (यानी प्रारंभिक) को देखता है और स्नैपशॉट के साथ वर्तमान डेटाबेस मॉडल स्नैपशॉट की तुलना Initial माइग्रेशन के रूप में करता है। जाहिर है ये स्नैपशॉट समान हैं, इसलिए Up() और Down() विधियां खाली हैं।

मुझे लगता है कि आपकी समस्या के लिए समाधान प्रारंभिक प्रवास में सभी परिवर्तनों को उत्पन्न करने के लिए है

add-migration Initial

1

मैं एक मुद्दा जहां इकाई अपने परिवर्तनों को पहचानने नहीं किया गया था का सामना करना पड़ा, भले ही मैं एक पूरी तरह से नई इकाई वर्ग जोड़ा असेंबली के लिए यह अभी भी इसे नहीं देख पाएगा।

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

+0

बस इसमें जोड़ने के लिए, मुझे फिर से समस्या का सामना करना पड़ा और इस बार एकमात्र चीज जिसे हल किया गया वह "बैच बिल्ड" (पुनर्निर्माण के साथ) कर रहा है। यह मेरा मानना ​​है कि डीबग मेनू के तहत है। ध्यान दें यह एक जगह जैसा पुनर्निर्माण जैसा नहीं है क्योंकि यह मेरे लिए काम नहीं करता है। – parliament

0

मैं भी खाली/नीचे था और कारण यह था कि ईएफ को यह पसंद नहीं आया कि मेरे मॉडल [JsonProperty] उनके गुणों के ऊपर थे, क्योंकि मैंने एक जेसन डेटासोर्स के लिए भी उसी मॉडल का उपयोग किया था।

+0

क्या आप निश्चित हैं? इस विशेषता के साथ कभी हस्तक्षेप नहीं देखा। कृपया विवरण दिखाएं कि विशेषता कब परेशानी का कारण बनती है। –

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