2011-05-29 10 views
18

मैं एंटिटी फ्रेमवर्क कोड का उपयोग कर रहा हूं और मैं डीबीकॉन्टेक्स्ट द्वारा उत्पन्न सभी SQL क्वेरी रिकॉर्ड करने में सक्षम होना चाहता हूं। लिंक से एसक्यूएल में एक डीबी लॉग था और मुझे इसे ईएफ में नहीं लग रहा है। मैं उन्हें एक लॉग में छोड़ सकता हूं या इसे पृष्ठ पर आउटपुट कर सकता हूं।ईएफ कोड में ट्रेस एसक्यूएल क्वेरी पहले

मैं EntityFramework असेंबली के संस्करण 4.1.0.0 का उपयोग कर रहा हूं।

+0

करता है न केवल चाहिए है ईएफ आपको एक कनेक्शन (एक स्ट्रिंग के बजाय) में पास करने की अनुमति देता है? मुझे तरीकों से पता है कि अगर आप –

+0

(संदर्भ में इसे रखने के लिए, हम सभी स्टैक ओवरफ्लो कोड में यह ट्रेसिंग करते हैं, और हम इसका उपयोग नहीं करते हैं।) –

+0

मार्क क्या आप एक कस्टम कनेक्शन कार्यान्वयन का उपयोग करते हैं जो लॉगिंग को हुक करता है? –

उत्तर

6

आपकी सर्वश्रेष्ठ शर्त Entity Framework Profiler का उपयोग करना होगा, हालांकि दुर्भाग्य से यह मुफ़्त नहीं है।

आप को IQueryable पर ToString() चलाकर मैन्युअल रूप से एसक्यूएल प्राप्त कर सकते हैं, लेकिन इसे प्रति-क्वेरी आधार पर किया जाना होगा।

एक अंतिम विकल्प यह है कि यदि आप अपने बैकएंड के रूप में एमएस एसक्यूएल सर्वर का उपयोग कर रहे हैं, तो आप एसक्यूएल सर्वर प्रोफाइलर (जो SQL सर्वर प्रबंधन स्टूडियो के साथ आता है) को लोड कर सकते हैं और वहां से एसक्यूएल स्टेटमेंट लॉग कर सकते हैं।

+1

ओपी भाग्यशाली है अगर वह इस प्रोफाइलर को खरीदने का फैसला करता है क्योंकि निर्माता (आयेंडे) आज शादी कर रहा है और 1 जून तक 2 9% छूट दे रहा है। http://ayende.com/blog/8193/the-big-event-is-just-a-week-away – Mike

+0

अच्छी तरह से बकवास, मुझे अंततः इसे अभी भी खरीदना पड़ सकता है। – KallDrexx

+1

को बंद करने के लिए $ 100 बंद करना मुश्किल है, मुझे प्रोफाइलर टूल के बारे में पता है। मुझे कोड कोड समाधान चाहिए जो मुझे एमवीसी वेब पेज पर आउटपुट देगा। मैं प्रति प्रश्न यह नहीं करना चाहता हूं कि मुझे संदर्भ पर एक घटना चाहिए जो मुझे क्वेरी को कैप्चर करने और लॉग इन करने देगी। –

0

ईएफ जैसे टूल्स के साथ यह SQL सर्वर प्रोफाइलर का उपयोग करने के लिए पहले से कहीं अधिक महत्वपूर्ण हो जाता है, और यह इस प्रकार की स्थितियों के लिए उपयोग किया जाने वाला प्राथमिक उपकरण होना चाहिए, अगर यह महत्वपूर्ण था जब हमने वास्तव में प्रश्नों को लिखा तो यह और भी महत्वपूर्ण है अब है कि इन उपकरणों हमारे लिए प्रश्नों का निर्माण, यह एक डिबगिंग के लिए, लेकिन यह भी अनुकूलन के लिए

+0

कुछ लोग एसक्यूएल एक्सप्रेस का उपयोग करते हैं जो प्रोफाइलिंग का समर्थन नहीं करता है। –

0

Miniprofiler इकाई की रूपरेखा प्रोफाइलर लिए एक स्वतंत्र विकल्प है कि आप वेब के दौरान किए गए सभी एसक्यूएल प्रश्नों का पता लगाने के लिए अनुमति देगा का अनुरोध करता है

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