मैं SQLite डेटाबेस के साथ wpf एप्लिकेशन में एंटिटी फ्रेमवर्क कोर का उपयोग कर रहा हूं।

जब मैं किसी इकाई को निकालने का प्रयास करता हूं, तो पहली बार अगली बार की तुलना में अधिक लंबा होता है। पहले अनुरोध में कुछ सेकंड से अधिक समय लग सकता है जबकि अगला अनुरोध लगभग तुरंत होता है।

पहले अनुरोध के निष्पादन के समय को बेहतर बनाने के लिए डेटाबेस या एंटिटी फ्रेमवर्क कोर में करने के लिए एक प्रगति या अन्य फिक्स है?

0
Flo 30 सितंबर 2019, 11:47

1 उत्तर

सबसे बढ़िया उत्तर

यह एक ज्ञात "मुद्दा" है, पहले अनुरोध धीमे होते हैं क्योंकि यह तब होता है जब ईएफ कोर टेबल मैपिंग को कॉन्फ़िगर करता है।

आपका संदर्भ जितना बड़ा होगा, पहला अनुरोध उतना ही धीमा होगा।

सबसे महत्वपूर्ण चीज जो आप यहां कर सकते हैं, वह है आपको DbContext को कई भागों में विभाजित करना (DDD दृष्टिकोण)।

एक त्वरित जीत धाराप्रवाह एपीआई अधिभार का उपयोग करना है जो निम्न में लैम्ब्डा फ़ंक्शन के बजाय एक स्ट्रिंग को स्वीकार करता है:

modelBuilder.Entity<User>().Property(nameof(User.Name));

के बजाए :

modelBuilder.Entity<User>().Property(o => o.Name);

यदि आपके पास सैकड़ों टेबल और गुण हैं तो इससे चीजों में सुधार होना चाहिए।

EF कोर टीम इस बात से अवगत है, और हमें भविष्य में रिलीज़ होने वाले किसी प्रकार के पूर्व-संकलित या "कैश्ड" मॉडल मिलेंगे, आप इसे ट्रैक कर सकते हैं यहां या यहां

0
Selmir 30 सितंबर 2019, 16:59