2009-09-04 8 views
5

एक डेटाबेस से दो टेबल खींचने के बाद, मैं दूसरे पर स्विच करता हूं और एक टेबल खींचता हूं। अब मुझे एक संदेश मिलता है यदि मैं कनेक्शन स्ट्रिंग को नए से बदलना चाहता हूं। मैं एक डीबीएमएल में कई डेटाबेस से टेबल चाहता हूं। क्या यह संभव है?डीबीएमएल में दो अलग-अलग डेटाबेस से टेबल्स?

उत्तर

3

मुझे विश्वास नहीं है कि आप जो खोज रहे हैं वह संभव है, क्योंकि डेटाकॉन्टेक्स्ट के पास दो अलग-अलग डेटाबेस से परिणामों को हल करने का कोई आसान तरीका नहीं होगा।

यदि आप दो अलग-अलग डेटाबेस से डोमेन ऑब्जेक्ट्स बनाना चाहते हैं, तो आपकी सर्वश्रेष्ठ शर्त दो अलग-अलग डीबीएमएल होगी, फिर अपने डोमेन ऑब्जेक्ट्स को तुरंत चालू करने के लिए पुल (जीओएफ) या कुछ अन्य संबंधित डिज़ाइन पैटर्न का उपयोग करें।

+0

क्या आपके पास यह लिंक है कि यह कैसे काम करेगा? मुझे लगता है कि मेरे पास एक समान स्थिति है। मेरे पास एक मास्टर डेटाबेस है जिसमें प्रत्येक क्लाइंट के लिए क्लाइंट की सूची और सर्वर का नाम और डेटाबेस नाम शामिल है। उनके पास एक समान डेटाबेस संरचना है, इसलिए, मैं चयनित क्लाइंट के आधार पर मॉडल को विभिन्न डेटाबेस से भरना चाहता हूं। – stephenbayer

+1

@stephenbayer - आपकी स्थिति वास्तव में थोड़ा अलग है। चूंकि डेटा वास्तव में एकाधिक डीबी के आसपास फैलता नहीं है, इसलिए आपका काम थोड़ा आसान है। एक सेवा बनाएं (वेब, साबुन, आराम, इस चर्चा के लिए कोई फर्क नहीं पड़ता) जो आपके डीबी के लिए कनेक्शन स्ट्रिंग या डेटाबेस नाम उपसर्ग (अधिक सुरक्षित) को कैसे ढूंढें। विशिष्ट डेटाबेस खोजने के लिए एक सूचकांक के रूप में एक क्लाइंट पहचानकर्ता का उपयोग करें। विशिष्ट डीबी से कनेक्ट करने के तरीके के बारे में जानकारी के लिए आपका ऐप इस क्लाइंट डीबी से पूछ सकता है। –

0

दूसरा विकल्प डेटाबेस पर एक सर्वर लिंक बनाना है जो दूसरे को इंगित करता है और "स्थानीय" डीबी से रिमोट टेबल पर उपनाम बनाता है। मेरा मानना ​​है कि आप उन्हें संदर्भित करने में सक्षम होंगे जैसे कि वे सभी एक ही डेटाबेस में थे।

+0

जबकि यह तकनीकी रूप से सही उत्तर है, क्या यह पालन करने के लिए एक खराब अभ्यास नहीं होगा? मुझे अतीत में लिंक किए गए सर्वर से निपटना पड़ा है, और मेरे अनुभव में, यह रखरखाव या प्रदर्शन के मामले में सुंदर नहीं रहा है –

5

उसी डीबीएमएल के भीतर कई डेटाबेस का संदर्भ देना पूरी तरह संभव है, उन डेटाबेस को उसी SQL सर्वर पर रहते हुए प्रदान किया गया है।

विजुअल स्टूडियो में, डीबीएमएल पर राइट-क्लिक करें, "इसके साथ खोलें ..." पर क्लिक करें, और एन्कोडिंग के साथ एक्सएमएल (टेक्स्ट) संपादक का चयन करें।

आप अपने पहले मेज है कि आप इस तरह दिखता में घसीटा देखेंगे:

< तालिका नाम = "dbo.MyTable1fromMyDatabase1" सदस्य = "MyTable1fromMyDatabase1" >

दूसरे से अपने तालिकाओं के लिए डेटाबेस जिन्हें आप जोड़ना चाहते हैं, उन्हें इस तरह दर्ज करें:

< तालिका का नाम = "MyDatabase2.dbo.MyTable1fromM yDatabase2 "सदस्य =" MyTable1fromMyDatabase2 ">

यह मानते हुए एक ही लॉगिन दोनों डेटाबेस के लिए काम करता है काम करेंगे, और अपने LINQ भाव अब दोनों डेटाबेस भर में क्वेरी कर सकते हैं!

0

हम एक ऐसा दृश्य भी बना सकते हैं जो अन्य डेटाबेस में तालिका से पूछताछ करे। हम इस दृश्य का चयन, सम्मिलन और अद्यतन कर सकते हैं, जो अन्य डेटाबेस में तालिका को भी प्रभावित करेगा।

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