वर्तमान में, मैं एक ऐसा एप्लीकेशन विकसित कर रहा हूं जो LINQ-to-SQL के माध्यम से विभिन्न डेटाबेस (और इस प्रकार कनेक्ट) पर निर्भर करता है। डेटाबेस में से एक के लिए, कनेक्शन स्ट्रिंग भिन्न हो सकती है और इस प्रकार कॉन्फ़िगर करने योग्य है - हालांकि, इस डेटाबेस की स्कीमा सभी कनेक्शन स्ट्रिंग के लिए समान है।डेटाकॉन्टेक्स्ट टेबल या दृश्य मौजूद है या नहीं,
कॉन्फ़िगर करने योग्य कनेक्शन स्ट्रिंग के कारण, मैं अपने एप्लिकेशन के स्टार्टअप के दौरान डेटाकॉन्टेक्स्ट को सत्यापित करना चाहता हूं, यह सुनिश्चित करने के लिए कि मेरे द्वारा उपयोग किए जाने वाले सभी टेबल और दृश्य उपलब्ध हैं।
Table<T>
DataContext
ऑब्जेक्ट में ऑब्जेक्ट्स हमेशा प्रारंभ किए जाते हैं - भले ही संबंधित SQL तालिका या दृश्य में कोई रिकॉर्ड न हो।
तो फिर।
bool valid = _dataContext.Articles.Count() > 0
&& _dataContext.Customers.Count() > 0
&& _dataContext.Orders.Count() > 0;
हालांकि यह काम करता है, वैध के मूल्य का निर्धारण काफी कुछ समय (प्रत्येक टेबल के हर रिकॉर्ड को छुआ है) है, जो अंततः एक समय बाहर में जो परिणाम लेता है: वर्तमान में, सत्यापन जाँच के रूप में निम्नानुसार किया जाता है । तो, क्या यह निर्धारित करने के लिए एक तेज, अधिक विश्वसनीय तरीका है कि DataContext
के Table<T>
वास्तव में संबंधित डेटाबेस में एक तालिका के रूप में मौजूद है या नहीं?
ले लो अपनी मेज का नाम:
ए (मैं उसे एक वोट दें :) दिया) छोटे सुधार: गिनती()> 0. के बजाय किसी भी() एक्सटेंशन विधि का उपयोग करें। वास्तविक प्रश्न का उत्तर नहीं है। –
@ जोर्न - आपको इसे एक उत्तर के रूप में पोस्ट करना चाहिए, क्योंकि मुझे लगता है कि यह सबसे अच्छा विकल्प है ... –