आप कर सकते हैं, यहां तक कि सर्वरों पर भी, जब तक आप दूसरे से एक डेटाबेस तक पहुंच सकते हैं। यही है, यदि सर्वर ए के विरुद्ध SQL कथन लिखना संभव है। डेटाबेस ए जो सर्वर बी तक पहुंचता है। डाटाबेसबी। स्कीमा। तालिका जो भी, तो आप LINQ में भी वही काम कर सकते हैं।
ऐसा करने के लिए, आपको हाथ से .dbml फ़ाइल को संपादित करने की आवश्यकता होगी। आप इसे आसानी से वीएस 2008 में ऐसा कर सकते हैं: राइट-क्लिक करें, चुनें ..., और एक्सएमएल संपादक चुनें।
कनेक्शन तत्व देखें, जो फ़ाइल के शीर्ष पर होना चाहिए। आपको उस कनेक्शन स्ट्रिंग द्वारा इंगित डेटाबेस में नहीं तालिकाओं के लिए एक स्पष्ट डेटाबेस नाम (और सर्वर का नाम, यदि अलग है) प्रदान करना है।
अपने .dbml में एक टेबल तत्व के लिए खुलने वाला टैग इस तरह दिखता है:
<Table Name="dbo.Customers" Member="Customers">
आपको क्या करने की जरूरत है कनेक्शन स्ट्रिंग के डेटाबेस में किसी तालिका नहीं के लिए, है, कि बदल इनमें से किसी एक की तरह नाम कुछ करने के लिए विशेषता:
<Table Name="SomeOtherDatabase.dbo.Customers" Member="Customers">
<Table Name="SomeOtherServer.SomeOtherDatabase.dbo.Customers" Member="Customers">
आपको समस्याएं आ रही हैं, तो सुनिश्चित करें कि अन्य डेटाबेस (या सर्वर) बनाने वास्तव में आपके मूल डेटाबेस (या सर्वर) से सुलभ है।
SELECT SomeColumn
FROM OtherServer.OtherDatabase.dbo.SomeTable
तो कि काम नहीं करता है, सुनिश्चित करें कि आप एक उपयोगकर्ता हैं या करने के लिए उपयोग के साथ प्रवेश करते हैं: एसक्यूएल सर्वर प्रबंधन स्टूडियो में, एक छोटे से SQL विवरण अपने मूल डेटाबेस के खिलाफ चल रहा है कि कुछ इस तरह करता है लिखने का प्रयास करें एक ही पासवर्ड के साथ दोनों डेटाबेस। यह निश्चित रूप से, आपके .dbml की कनेक्शन स्ट्रिंग में उपयोग किए जाने वाले जैसा ही होना चाहिए।
आप डेटाबेस क्यों नहीं बदल सकते हैं? – tuinstoel
तृतीय पक्ष। डीबीए वहां वस्तुओं को बनाने से दूर रहना चाहता है, भले ही यह एक साधारण दृश्य है। – gfrizzle