2012-09-30 39 views
6

मैंने अपने विंडोज ऐप में SQL सर्वर सीई 4.0 का उपयोग किया और इसका मॉडल बनाने के लिए इकाई फ्रेमवर्क का उपयोग किया।एसक्यूएल सर्वर सीई के लिए गतिशील कनेक्शन स्ट्रिंग का उपयोग कैसे करें?

यह ठीक काम करता है लेकिन मेरी समस्या यह है कि इसमें कनेक्शन स्ट्रिंग को बदलने के लिए कोई कन्स्ट्रक्टर नहीं है, और डिफ़ॉल्ट रूप से यह app.config फ़ाइल से कनेक्शन स्ट्रिंग को पढ़ता है।

using (var Context = new MyEntitiesModel(//has no constructor)) 
{ 
     ... 
} 

मैं एक गतिशील कनेक्शन स्ट्रिंग और

using (var Context = new MyEntitiesModel()) 
    { 
     Context.Database.Connection.ConnectionString = entityConnection.ConnectionString; 
    } 

यह इस तरह से ठीक काम करता है लेकिन अगर मैं app.config फाइल में एक और कनेक्शन स्ट्रिंग को दूर यह मुझे यह दिया पैदा करते हैं।

error = invalid metasource ....

क्योंकि डिफ़ॉल्ट निर्माता इसे इस्तेमाल करता है

मैं इसे कैसे संभाल कर सकते हैं?

+0

क्या कोई ऐसा निर्माता नहीं है जो डीबीकनेक्शन को पैरामीटर के रूप में लेता है? –

+0

हाँ कनेक्शन स्ट्रिंग को बदलने के लिए कोई कन्स्ट्रक्टर नहीं है – motevalizadeh

+1

क्या आप app.config फ़ाइल में सिर्फ डमी कनेक्शन स्ट्रिंग में नहीं जा सकते हैं? – Seph

उत्तर

2

अपना खुद का कन्स्ट्रक्टर बनाएं। MyEntitiesModel आंशिक वर्ग है आप कक्षा का अपना आंशिक हिस्सा जोड़ सकते हैं और एक कनेक्शन स्ट्रिंग को स्वीकार करने वाले कन्स्ट्रक्टर को जोड़ सकते हैं।

public partial class MyEntitiesModel { 
    public MyEntitiesModel(string connectionString) : base(connectionString) { } 
} 
+0

त्रुटि: डेटाबेस प्रथम और मॉडल के लिए टी 4 टेम्पलेट का उपयोग करके उत्पन्न कोड कोड पहले मोड में उपयोग किए जाने पर पहले विकास सही ढंग से काम नहीं कर सकता है। डेटाबेस फर्स्ट या मॉडल का उपयोग जारी रखने के लिए पहले सुनिश्चित करें कि एंटीटी फ्रेमवर्क कनेक्शन स्ट्रिंग निष्पादन अनुप्रयोग की कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट है। इन कक्षाओं का उपयोग करने के लिए, जिन्हें डाटाबेस फर्स्ट या मॉडल फर्स्ट से जेनरेट किया गया था, कोड फर्स्ट के साथ एट्रिब्यूट्स या डीबीमोडेलबिल्डर एपीआई का उपयोग करके कोई अतिरिक्त कॉन्फ़िगरेशन जोड़ें और फिर इस अपवाद को फेंकने वाले कोड को हटा दें। – motevalizadeh

+0

आपकी कनेक्शन स्ट्रिंग कैसा दिखती है? –

+0

"डेटा स्रोत = | डेटा डायरेक्टरी | \\ MyDb.sdf; पासवर्ड = xxx; सुरक्षा जानकारी जारी रखें = सही"; – motevalizadeh

1

मैं डीबीकॉन्टेक्स्ट का उपयोग कर रहा हूं। कई ओवरलोड कन्स्ट्रक्टर्स हैं उदाहरण: ऑब्जेक्ट कॉन्टेक्स्ट में कन्स्ट्रक्टर ओवरलोड का एक समान सेट भी है।

System.Data.Entity DbContext उदाहरण

Context = new BosMasterEntities(nameOrConnectionString: nameOrConnectionString); 

आप एक ही समय में एक से अधिक डीबीएस से जुड़ सकते हैं।