2012-05-16 5 views
38

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

बताते हुए के बाद से डेटाबेस बनाया गया था मॉडल 'संदर्भ' संदर्भ समर्थन बदल गया है फेंक रहा है।

एफई 4.1 में यह अक्षम की गईं किया जा सकता है अद्यतन करने के लिए डेटाबेस ModelBuilder से IncludeMetadataConvention निकाल कर संहिता पहले माइग्रेशन उपयोग पर विचार करें। हालांकि, 4.3 में इस सम्मेलन को हटा दिया गया है और इसका कोई प्रभाव नहीं पड़ा है।

एक ईएफ 4.3-जेनरेटेड डेटाबेस पर एक अलग संदर्भ द्वारा निर्मित ईएफ 4.3 संदर्भ बात कैसे हो सकती है? मुझे मिला एकमात्र विकल्प (जो आदर्श से बहुत दूर है) मेटाडेटा तालिका को हटाना है, जिससे दोनों संदर्भों को मानने के लिए डेटाबेस को ईएफ द्वारा नहीं बनाया गया था।

पुनश्च: मैं जानता हूँ कि इस परिदृश्य क्यों मैं ऐसा करने की जरूरत बारे में सवाल उठा सकता है; मुझे पता है कि यह आदर्श से बहुत दूर है, लेकिन बाकी आश्वासन दिया है कि यह एक समस्या है जिसे मुझे हल करने की आवश्यकता है और बाद में काम करने के लिए सीमित विकल्प हैं।

उत्तर

67

प्रारंभकर्ता को null पर सेट करना मॉडल संगतता जांच को छोड़ देगा।

Database.SetInitializer<MyContext>(null); 
+2

बिल्कुल सही, काम करता है जैसा कि मैंने आशा की थी। धन्यवाद! – STW

+1

आप इसे कहां रखते हैं? – jep

+4

आपके संदर्भ पर एक स्थिर निर्माता अधिकांश अनुप्रयोगों के लिए बहुत अच्छी तरह से काम करता प्रतीत होता है। – bricelam

15

एफई 4.3 के लिए या उच्च

Database.SetInitializer<MLTServerWatcherContext>(null); 

या अगर एफई

modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 

के पुराने संस्करण का उपयोग (मैं उन्होंने कहा कि वह एफई 4.3 का उपयोग कर रहे हैं, लेकिन मुझे लगता है कि यह अच्छा है यह विकल्प भी दिखाएं)

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