मैंने अपने डीएएल को LINQ से एंटीटी फ्रेमवर्क का उपयोग करने से स्विच किया। चूंकि मेरा एप्लिकेशन वर्तमान उपयोगकर्ता के आधार पर अलग-अलग डेटाबेस से जुड़ता है, इसलिए मुझे रन टाइम पर डेटाकॉन्टेक्स्ट गतिशील रूप से बनाने और उचित कनेक्शन स्ट्रिंग में पास करने की आवश्यकता होती है। हालांकि, जब मैंने प्रोग्रामिंग रूप से मेरी पुरानी कनेक्शन स्ट्रिंग का उपयोग करके एक इकाई फ्रेमवर्क कनेक्शन बनाने की कोशिश की, तो कनेक्शन विफल हो गया। इसने शिकायत की कि कनेक्शन कनेक्शन में कुंजी को "सर्वर" सटीक नहीं माना गया है।एक इकाई फ्रेमवर्क कनेक्शन को मेटाडेटा संपत्ति की आवश्यकता क्यों होती है?
मुझे पता चला कि मैं आदेश इकाई की रूपरेखा कनेक्शन काम करने के लिए प्राप्त करने के लिए यह करने के लिए की जरूरत:
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = clientConnectionString;
entityBuilder.Metadata = "res://*/xxxxxxxxxx.csdl...";
Entities entities = new Entities(entityBuilder.ToString());
ऐसा क्यों है?
मेटाडेटा संपत्ति क्या है?
क्या यह एक समस्या होगी कि यह हमेशा कई अलग-अलग कनेक्शनों के लिए समान है?
यह क्या होना चाहिए?
क्या इसके आसपास कोई रास्ता है?
अग्रिम धन्यवाद!
अद्यतन 1: अद्यतन Randolpho के लिए धन्यवाद, लेकिन ...
पूरी कारण मैं इस समस्या हो रही है, कि मैं एक विन्यास फाइल में कनेक्शन तार की दुकान नहीं कर सकते हैं। कनेक्शन स्ट्रिंग को गतिशील रूप से रनटाइम पर निर्धारित किया जाता है जिसके द्वारा उपयोगकर्ता कनेक्ट हो रहा है।
यहाँ मेरी सटीक परिदृश्य है: उपयोगकर्ता एक कनेक्ट कर रहा है
हैं, तो एप्लिकेशन को उपयोगकर्ता बी कनेक्ट कर रहा है, तो डेटाबेस ए से डेटा खींचती है, एप्लिकेशन डेटाबेस बी
कनेक्शन तार एक मुख्य में जमा हो जाती से डेटा खींचती है डेटाबेस, और संख्या संभावित रूप से असीमित है। हर बार जब मैं कोई उपयोगकर्ता जोड़ता हूं, तो मैं web.config में नहीं जाना चाहता, इस तथ्य का जिक्र नहीं करना कि अंततः यह बड़ा हो जाएगा!
चूंकि मैपिंग प्रत्येक कनेक्शन के लिए समान हैं, और यह नहीं बदलेगा, इससे कोई फर्क नहीं पड़ता कि मैं उन सभी के लिए एक ही मेटाडाटा का उपयोग करता हूं? –
हाँ यह सही है – user230910