2012-06-26 8 views
12

में टेबल खींचता हूं हर बार जब मैं एक संशोधित तालिका को अपने डीबीएमएल में खींचता हूं, तो VS2010 चाहता है कि मैं कनेक्शन स्ट्रिंग को अपडेट करना चाहता हूं भले ही मैंने सटीक डेटा कनेक्शन बनाया हो एक ही जानकारी। हर बार ऐसा होने पर यह मेरी कनेक्शन स्ट्रिंग को 'डेटासोर्सकनेक्शनस्ट्रिंग' में बदल देता है और मुझे इसे 5 अलग-अलग फाइलों से हटाना होगा और कनेक्शन स्ट्रिंग के नाम से इसे बदलना होगा जिसे मैं पहले इस्तेमाल कर रहा था, इसलिए यह फाइल का उपयोग करके सभी को पेंच नहीं करता है स्रोत नियंत्रण। कोई विचार?कनेक्शन स्ट्रिंग को अपडेट करने से LINQ से SQL dbml को रोकें जब मैं dbml फ़ाइल

उत्तर

17

मुझे कुछ हद तक संबंधित मुद्दों के जवाब के साथ झुकाव के बाद एक और दूर पता चला।

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

हाँ! हर बार जब मैं अपडेट करता हूं तो अतिरिक्त कनेक्शन स्ट्रिंग को और नहीं हटाता! : डी

+0

यह बहुत अजीब है, लेकिन बहुत बहुत धन्यवाद। मुझे नफरत है कि एमएस ने LINQ से SQL पर काम करना बंद कर दिया है। एंटिटी फ्रेमवर्क के साथ सब कुछ पुनर्निर्माण करने के लिए यह बहुत काम करने का तरीका है। – Olaj

+0

हां! यह काम करता हैं। लेकिन मैं सोच रहा हूँ कैसे ?! यह उसमें कैसे करता है ?! – Mohammadreza

+0

धन्यवाद। @Stuck yes यह अजीब है – Mohammadreza

2

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

DataClasses1DataContext db = new DataClasses1DataContext(); 

उपयोग:: उदाहरण के लिए, बस के बजाय

DataClasses1DataContext db = new DataClasses1DataContext("..connection string.."); 

या

DataClasses1DataContext db = new DataClasses1DataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); 

आशा यह आपके लिए क्या देख रहे है।

+0

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

+0

के लिए धन्यवाद, ऐसा लगता है कि वीएस 2012 ने आखिरकार कनेक्शन स्ट्रिंग को कोड में बेक नहीं कर लिया है। वीएस 2012 में, किसी भी पैरामीटर के साथ डेटा संदर्भ को तुरंत चालू करने से एक कन्स्ट्रक्टर को कॉल किया जाएगा जो web.config में AppSettings से किसी मान में पढ़ता है। उपयोग की जाने वाली AppSettings कुंजी को dbml फ़ाइल के गुण टैब में बदला/सेट किया जा सकता है। –

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