Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Entity Framework में CreateIfNotExists को गति देने का कोई तरीका?

हाँ। मुद्दा यह है कि वास्तविक डेटाबेस का उपयोग केवल एकीकरण परीक्षणों के लिए किया जाता है, जिन्हें इतनी बार निष्पादित नहीं करना पड़ता है और एकीकरण परीक्षणों का पूरा सेट आमतौर पर केवल बिल्ड सर्वर पर ही निष्पादित किया जाता है।

इसकी वजह है इकाई परीक्षण के दौरान EF का धीमा प्रारंभ (आप x86 पर स्विच करने का प्रयास कर सकते हैं)। दृश्य पीढ़ी द्वारा भी समय की खपत होती है। दृश्य पूर्व-उत्पन्न किए जा सकते हैं जो आमतौर पर वास्तविक सिस्टम के स्टार्टअप और इनिशियलाइज़ेशन को कम करने के लिए किया जाता है, लेकिन प्री-जेनरेशन व्यू का उपयोग करके यूनिट परीक्षणों को तेज करने के मामले में बहुत अधिक मदद नहीं करेगा क्योंकि आप परीक्षण से निर्माण के लिए समय को स्थानांतरित कर देंगे।

चारों ओर जाने का मतलब सिर्फ सादा पुरानी एसक्यूएल स्क्रिप्ट का उपयोग करना होगा। इस ऑपरेशन के लिए आवश्यक अतिरिक्त समय उस SQL ​​​​को बनाने में खर्च किया जा सकता है। मुझे लगता है कि एसक्यूएल को कैश नहीं किया गया है क्योंकि सामान्य एप्लिकेशन निष्पादन को आम तौर पर एक से अधिक बार इसकी आवश्यकता नहीं होती है, लेकिन आप ईएफ से आपको उस एसक्यूएल के सबसे महत्वपूर्ण हिस्से को देने के लिए कह सकते हैं, इसे कहीं कैश करें और हर बार जब आपको इसकी आवश्यकता हो तो इसे स्वयं निष्पादित करें . EF आपको तालिकाओं और बाधाओं के लिए SQL देने में सक्षम है:

var dbSql = ((IObjectContextAdapter) context).ObjectContext.CreateDatabaseScript();

डेटाबेस बनाने और उन्हें एक साथ उपयोग करने के लिए आपको बस अपना छोटा एसक्यूएल होना चाहिए। निम्नलिखित स्क्रिप्ट जैसा कुछ भी पर्याप्त होना चाहिए:

CREATE DATABASE YourDatabaseName

USE YourDatabaseName

यह काम करने और प्रक्रिया पर नियंत्रण रखने के लिए आपको पहले कोड में डेटाबेस जनरेशन को भी बंद करना होगा:

Database.SetInitializer<YourContextType>(null);

डेटाबेस निर्माण SQL निष्पादित करते समय आपको Master . की ओर इशारा करते हुए अलग कनेक्शन स्ट्रिंग की आवश्यकता होगी डेटाबेस।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका में एसक्यूएल सर्वर 2008 एक्सएमएल फ़ाइल

  2. SQL सर्वर डेटाबेस बदलें श्रोता सी #

  3. टाइमज़ोन नाम से टाइमज़ोन ऑफ़सेट कैसे प्राप्त करें

  4. कई परिणाम सेट के साथ Dapper.NET और संग्रहीत खरीद

  5. अब स्थानीय SQL Server 2008 डेटाबेस से कनेक्ट नहीं हो सकता