के लिए सेटअप इकाई फ्रेमवर्क मैं एक ऐप पर काम कर रहा हूं जो एकाधिक डेटाबेस में एक ही डेटाबेस स्कीमा का उपयोग करेगा। इस कारण से, मैंने MyTemplate
नामक डेटाबेस बनाया है। जब कोई नया उपयोगकर्ता बनाया जाता है, तो उनके पास डेटाबेस का अपना उदाहरण होगा। इसलिए, MyTemplate_[UserName]
जैसे कुछ डेटाबेस को बनाया जाएगा। जब कोई उपयोगकर्ता लॉग इन करता है, तो मुझे अपने प्रश्नों को उनके डेटाबेस में इंगित करने की आवश्यकता होती है। इस कारण से, मुझे पता है कि मुझे रनटाइम पर कनेक्शन स्ट्रिंग सेट करने की आवश्यकता है। मेरी समस्या यह है कि मैं भी इकाई फ्रेमवर्क का उपयोग करना चाहता हूं।गतिशील कनेक्शन स्ट्रिंग
वर्तमान में, मैंने स्रोत के रूप में MyTemplate का उपयोग करके एक नया .edmx बनाया है। मैंने सोचा कि मैं कोड को अपडेट करने और वहां कनेक्शन स्ट्रिंग सेट करने में सक्षम होगा। दुर्भाग्य से, मैं यह नहीं समझ सकता कि इसे कैसे सेट किया जाए। TemplateEntities के कन्स्ट्रक्टर में अधिभार नहीं होता है जो मुझे कनेक्शन स्ट्रिंग में पास करने की अनुमति देता है। मैंने देखा कि डीबीकॉन्टेक्स्ट से प्राप्त टेम्पलेट एंटीटीज, मुझे नहीं लगता कि यह समस्या होगी।
string connectionString = GetUsersConnectionString();
using (TemplateEntities entities = new TemplateEntities())
{
TemplateEntity entity = new TemplateEntity();
// Save to the database
entities.TemplateEntity.Add(entity);
entities.SaveChanges();
}
क्या मैं .edmx
गलत तरीके से बना रहा हूं? या क्या मैं पूरी तरह से कुछ याद कर रहा हूँ? मैं जो कुछ भी Google Google को एक अधिभार दिखाता हूं जिसे कनेक्शन स्ट्रिंग को पारित करने की अनुमति देनी चाहिए। हालांकि, मेरे पास उस अधिभार को उपलब्ध नहीं है।
जब मैं ऐसा करता हूं, तो मुझे एक त्रुटि मिलती है जो कहती है: 'ऑब्जेक्ट' में कोई कन्स्ट्रक्टर नहीं होता है जो 1 तर्क लेता है। मैं क्या गलत कर रहा हूं? – user70192
नए कन्स्ट्रक्टर के साथ आंशिक श्रेणी परिभाषा जेनरेट क्लास के समान नामस्थान में होनी चाहिए - अन्यथा यह एक नई कक्षा घोषित करता है (जिसे डिफ़ॉल्ट रूप से 'ऑब्जेक्ट' से प्राप्त होता है) –
+1: मैं इस प्रकार का कन्स्ट्रक्टर क्यों परेशान हूं डिफ़ॉल्ट टेम्पलेट में नहीं, लेकिन यह एक अच्छा और साफ समाधान है, thx। – reSPAWNed