2012-11-19 9 views
41

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

मैंने कॉलम के डेटाटाइप को बदलने का भी प्रयास किया है, जो कि अगर मैं .edmx मॉडल फ़ाइल को देखता हूं तो फिर से ठीक दिखाई देता है, लेकिन दृश्य स्टूडियो अभी भी मुझे उस क्षेत्र में कंपाइलर त्रुटियां देगा क्योंकि मैं गलत डेटाटाइप असाइन करने की कोशिश कर रहा हूं ।

यदि मैं ईडीएमएक्स को पूरी तरह हटा देता हूं, और इसे फिर से बना देता हूं, तो परिवर्तन ठीक काम करते हैं। लेकिन जब भी मैं "डेटाबेस से मॉडल अद्यतन" और पुनर्निर्माण करने में सक्षम होना चाहिए, तो हर बार डेटाबेस से पुन: उत्पन्न करना मुश्किल होता है।

मुझे पहले कभी ईएफ के साथ इन समस्याओं का सामना नहीं हुआ है। क्या किसी को इस समस्या का कारण या फिक्स पता है?

धन्यवाद।

+1

क्या आपके edmx के लिए कोड पीढ़ी रणनीति है? (Edmx खोलें, F4 दबाएं) – Heather

+1

@ हेदर यह 'कोई नहीं' पर सेट है। मैंने इसे 'डिफ़ॉल्ट' में बदलने की कोशिश की, यह सोचकर कि समस्या होनी चाहिए, और अब मेरे पास दर्जनों त्रुटियां हैं जो कहती हैं कि टाइप [टेबल] में पहले से ही प्रत्येक तालिका/कॉलम के लिए [कॉलम] की परिभाषा है। कोई विचार? – Kyle

+1

हाँ, आपने अपनी समस्या का पहला आधा हल कर लिया है। "कोई नहीं" बिल्कुल कोड उत्पन्न नहीं करेगा। अब जब आप कोड उत्पन्न कर रहे हैं तो आपको अपने डेटाबेस और अपने edmx के बीच तार्किक असंगतताओं को हल करने की आवश्यकता है। सामान्यतः ऐसा करने के दो तरीके हैं: पहला है कि प्रत्येक इकाई को अपने edmx से हटा दें और फिर डेटाबेस से अद्यतन चलाएं। – Heather

उत्तर

15

यदि यह edmx एक फ़ोल्डर में स्थित फ़ाइल के साथ बग यह अब तय हो गई है है - डाउनलोड और स्थापित वी.एस. 2012 अद्यतन 1. आप से प्राप्त कर सकते हैं: http://www.microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-update

+0

में एक ही समस्या थी, अद्यतन स्थापित किया और यह edmx में तालिका के ताज़ा करने के बाद काम किया। ईएफ का संस्करण 4.4, यह लगभग समय था जब वे इसे ठीक करते हैं! –

+0

बस सिर ऊपर। काम नहीं करता है जब ईएफ के साथ कई समाधान खुले हैं। परिवर्तनों को पकड़ने के लिए वीएस के लिए सभी को बंद करना होगा। (भले ही पूरी तरह अलग परियोजनाएं हों।) –

+2

मेरे पास वीएस 2013 अपडेट 1 है, लेकिन एक ही बग होता है। –

0

क्या आप एन-टायर परियोजना में काम कर रहे हैं? यदि ऐसा है, तो इसका उपयोग करने से पहले अपने डेटा लेयर (या जहां भी आपकी EDMX फ़ाइल संग्रहीत है) का पुनर्निर्माण करने का प्रयास करें।

+0

एडीएमएक्स उसी प्रोजेक्ट में है जैसा कि मैं इसका उपयोग कर रहा हूं। मैंने बिना किसी सफलता के, फिर भी इसे पुनर्निर्माण करने वाली जटिल त्रुटियों पर टिप्पणी करने का प्रयास किया है। – Kyle

+0

मैं देखता हूं कि हेदर ने आपके प्रश्न पर क्या सुझाव दिया था। कोड जनरेशन रणनीति को आपके मामले में डिफ़ॉल्ट पर सेट किया जाना चाहिए। – Middas

+0

मैं आपकी तालिका और कॉलम भी देखूंगा, सुनिश्चित करें कि वे सार्वजनिक रूप से पहुंच योग्य हैं। – Middas

7

आपके पास <XXX>Model.tt फ़ाइल कहीं कहीं होनी चाहिए जो आपके मॉडल वर्गों को उत्पन्न करने वाला टी 4 टेम्पलेट है।

यदि यह एक अलग प्रोजेक्ट में है, तो जब आप edmx फ़ाइल को सहेजते हैं तो यह अपडेट नहीं होगा।

वैसे भी, समाधान Explorer में उस पर राइट क्लिक कोशिश करते हैं और Run Custom Tool

+0

इसके अलावा अन्य तरीका: यदि आप edmx फ़ाइल को सहेजे बिना 'कस्टम कस्टम टूल' चुनते हैं, तो संस्थाएं अपडेट नहीं की जाएंगी। – bvgheluwe

13

चुनने जाहिरा तौर पर यह इकाई की रूपरेखा में एक बग है कि मॉडल है जब आपके edmx फ़ाइल एक फ़ोल्डर के अंदर स्थित है अद्यतन नहीं करता है। इस समय उपलब्ध वर्कअराउंड हैं:

  1. वीएस 2012 अपडेट 1 स्थापित करें जो बग को ठीक करना चाहिए।
  2. यदि आप अपडेट 1 स्थापित करने की स्थिति में नहीं हैं, तो आपको model.tt T4 टेम्पलेट फ़ाइल पर राइट क्लिक करना होगा और कस्टम टूल चलाएं क्लिक करें। यह आपके लिए कक्षाओं को अपडेट करेगा।

आशा है कि वहां किसी को मदद मिलेगी।

लिंक: http://thedatafarm.com/blog/data-access/watch-out-for-vs2012-edmx-code-generation-special-case/

+0

यह अभी तय है - मेरी दूसरी प्रतिक्रिया देखें। – Pawel

+0

हाहा अच्छा एक Pawel, ऐसा लगता है कि हम एक दूसरे के एक घंटे के भीतर एक ही समाधान पोस्ट किया। – Ghlouw

+0

धन्यवाद, कस्टम उपकरण चलाने के बाद अब मेरे लिए काम करता है। – arunlalam

52

पहले बिल्ड आपकी परियोजना और यदि यह सफल रही, तो संदर्भ में "model.tt" पर इंगित करें। फिर कस्टम उपकरण चलाएं। यह ठीक करेगा।

फिर से अपनी परियोजना बनाएं और "model.context.tt" पर कस्टम टूल को इंगित करें। यह अद्यतन करेगा DbSet सूचियां।

+0

एक आकर्षण की तरह काम करता है। – shazia

+1

इसके लिए बहुत बहुत धन्यवाद! ऐसा लगता है कि यह बग VS2013 अपडेट 3 में वापस आ गया है, लेकिन इस टिप के बाद एक त्वरित और आसान काम है। – Patrick

+0

आपको बहुत बहुत धन्यवाद। मुझे सबसे पहले बाहर किए गए आइटम दिखाना था, फिर उपकरण चलाने के लिए .tt की पुन: शामिल करना था। –

6

मुझे यह समस्या भी थी, हालांकि, model.tt फ़ाइल पर राइट-क्लिक करने और "कस्टम टूल" चलाने से मुझे किसी भी तरह का कोई फर्क नहीं पड़ता, लेकिन पेज पर एक टिप्पणी गलौव का उपयोग करने के लिए उल्लिखित मेनू आइटम "निर्मित> सभी टी 4 टेम्पलेट्स को बदलें।"जो यह मेरे लिए किया था

2

मैं इस उत्तर के लिए खोज की है क्योंकि मैं VS2013 में एक ऐसी ही स्थिति थी। मेरे मामले में, मैंने पाया कि एक साधारण" Clean Solution "सभी पुराने परिभाषाओं को हटा दिया।

0

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

जैसे ही इसे साफ़ कर दिया गया और डेटाबेस से अपडेट किए गए चित्र को फिर से दिखाई दिया।

EF5 VS2013

1

सही .tt फ़ाइल क्लिक करें और "भागो कस्टम उपकरण", कि यह अद्यतन करना चाहिए: see image

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