2015-06-23 19 views
5

मैं एक एमवीसी 5 एप्लीकेशन पर काम कर रहा हूं जो एंटीटी फ्रेमवर्क 6.1.3 का उपयोग करता है। मैं पहली कॉल को अनुकूलित करने की कोशिश कर रहा हूं, जो आमतौर पर विचारों को पूर्व-उत्पन्न करके 1-4 सेकंड लेता है। मैं समझता हूं कि यह क्यों हो रहा है, लेकिन मुझे लगता है कि मुझे कहीं एक महत्वपूर्ण कदम याद आ रहा है।प्री-जनरेटिंग एंटिटी फ्रेमवर्क व्यू

मेरा वर्तमान परीक्षण ईएफ का उपयोग करके मेरे डीबी से ऑब्जेक्ट्स का संग्रह खींचने के लिए पांच बार एक ही फ़ंक्शन चलाता है। जब मैं अपने edmx में सेट 'आउटपुट निर्देशिका में एम्बेड करें' के साथ इस चलाने मैं निम्नलिखित परिणाम प्राप्त:

**

  • पहले एफई कॉल: 2617 मिलीसेकेंड
  • दूसरा एफई कॉल: 19 मिलीसेकंड
  • तीसरा एफई कॉल: 19 मिलीसेकंड
  • चौथा एफई कॉल: 17 मिलीसेकंड
  • पांचवें एफई कॉल: 20 मिलीसेकंड

**

मैं एफई के बाद से इस उम्मीद डेटाबेस का उपयोग करने के लिए स्थानीय विचारों पैदा कर रहा है ...

जब मैं, पुनः जाँच लें कि मेरी फ़ाइलों को कॉपी किया जा रहा है 'आउटपुट निर्देशिका को कॉपी' करने के लिए स्विच बिन फ़ोल्डर और मेरे कनेक्शन स्ट्रिंग अद्यतन किया गया है, और फिर एक ही परीक्षण चलाने मैं ऐसे ही परिणाम मिलेंगे:

**

  • पहले एफई कॉल: 2546 मिलीसेकेंड
  • दूसरा एफई कॉल: 19 मिलीसेकंड
  • तीसरा एफई कॉल: 18 मिलीसेकंड
  • चौथा एफई कॉल: 18 मिलीसेकंड
  • पांचवें एफई कॉल: 21 मिलीसेकंड

**

में कोई परिवर्तन नहीं पहला कॉल, जो अजीब है। मैंने ईएफ पावर टूल्स जोड़े, मेरे edmx => इकाई फ्रेमवर्क => जेनरेट व्यू पर राइट-क्लिक किया। एक 'Model1.View.cs' फ़ाइल को मेरी प्रत्येक तालिका/दृश्यों के लिए स्ट्रिंग के साथ बनाया गया था, इसलिए मुझे लगा जैसे मैं सही रास्ते पर था। जब मैं फिर से परीक्षण चला गया तो मुझे एक ही परिणाम मिल गया। नई जेनरेट की गई 'Model1.View.cs' फ़ाइल की प्रत्येक विधि में ब्रेकपॉइंट डालने से पता चलता है कि इसे कभी भी हिट नहीं किया जा रहा है।

क्या मुझे यहां एक महत्वपूर्ण कदम याद आ रहा है? मैं ईएफ पावर टूल्स द्वारा बनाई गई फ़ाइल का उपयोग करने के लिए ईएफ कैसे कहूं, या मैं ऑनलाइन पढ़ने के लिए कॉपी आउटपुट निर्देशिका कार्य को कैसे बना सकता हूं?

उत्तर

12

जहां तक ​​मुझे याद है कि ईएफ पावर टूल्स को ईएफ 6 का समर्थन करने के लिए अपडेट नहीं किया गया था। यदि आप सुनिश्चित हैं कि यह ऐसी पीढ़ी है जो समस्या उत्पन्न कर रही है तो आप या तो व्यू पीढ़ी T4 template या इंटरैक्टिव pre-gegnerated views (हाँ, मैं दोनों का निर्माता हूं) का उपयोग कर सकता हूं। आप this post में T4 टेम्पलेट का उपयोग करने के तरीके के बारे में अधिक जानकारी प्राप्त कर सकते हैं। इंटरएक्टिव प्री-जेनरेटेड व्यू here वर्णित हैं।

हालांकि, ईएफ 6 में पीढ़ी को काफी सुधार हुआ था और बड़े मॉडल के लिए केवल एक समस्या है या जब जटिल पदानुक्रम शामिल हैं। मुझे लगता है कि आप जो बाधा देख रहे हैं वह दृश्य उत्पादन के कारण नहीं बल्कि मॉडल बिल्डिंग के कारण है।ईएफ टीम द्वारा this post पर एक नज़र डालें जो देशी छवियों को उत्पन्न करके स्टार्टअप प्रदर्शन में सुधार के बारे में थोड़ा सा बात करता है। आप Performance Consideration पर भी एक नज़र डालना चाहते हैं।

+0

धन्यवाद Pawel! –

+0

मैंने इंटरैक्टिव प्री-जेनरेट किए गए दृश्य और जेनरेट की गई मूल छवियां शामिल कीं और मेरा पहला कॉल 458 मिलीसेकंड तक घटा दिया गया। तुम कमाल हो। –

+0

हाय मैथ्यू, मैं एक एएसपी.नेट एमवीसी अनुप्रयोग पर काम कर रहा हूं और मैं आपके समाधान का परीक्षण करूंगा। आपने Pawel का कोड कहां जोड़ा? Global.asax फ़ाइल में? मैंने बाहरी संदर्भ में डेटाबेस संदर्भ और edmx परिभाषित किया। अग्रिम में धन्यवाद। – jacktric

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