2011-04-08 16 views
7

से जेनरेट एसक्यूएल प्राप्त करें क्या संकलित लिनक्स क्वेरी से उत्पन्न एसक्यूएल प्राप्त करना संभव है?संकलित linq क्वेरी

उत्तर

9

आप नहीं कर रहा हूँ कर सकते हैं:

  1. जेनरेट क्वेरी को विजुअल स्टूडियो की आउटपुट विंडो पर रीडायरेक्ट करने के लिए संदर्भ की लॉग प्रॉपर्टी का उपयोग करें। link
  2. या LINQ से SQL डीबग विजुअलाइज़र का उपयोग करें। link
+0

दृश्य स्टूडियो उत्पादन करने के लिए लॉग आसान तरीका पुनः निर्देशित किया गया था। भविष्य में googlers के लाभ के लिए – dcarneiro

+1

अंगूठे। मुझे पहले लिंक पर सवाल से संबंधित कुछ भी नहीं मिला। इस उत्तर को पोस्ट करने के बाद से सामग्री बदलनी चाहिए। आप मूल रूप से 'db.Log = Console.Out;' जोड़ें जहां डीबी आपका डेटाबेस संदर्भ ऑब्जेक्ट है। [msdn पर स्रोत देखें] (http://msdn.microsoft.com/en-us/library/bb386961.aspx) –

2

उपयोग LinqPad:

या वैकल्पिक रूप से क्वेरी को देखने के लिए मिल उपयोग एसक्यूएल सर्वर प्रोफाइलर। मुझे पता है तुम डिबग में क्वेरी चर से अधिक तथापि करने में सक्षम हुआ करता था और यह आप क्वेरी यह निष्पादित करने के लिए जा रहा है प्रदर्शित होगा, लेकिन मैं पूरी तरह से यकीन है कि अगर अभी भी काम करता है (निश्चित रूप से नहीं ग्राहक के पक्ष क्षुधा पर)

0

धन्यवाद जेएफएस, लेकिन आपके विकल्प # 1 में लिंक अब अच्छा नहीं है। यह कोई प्रासंगिक लेख नहीं दिखा रहा है। एमएसडीएन लेख के क्रिस बी के लिंक ने मेरी मदद की।

यहाँ मेरी हल है के बाद से मेरा एक कंसोल आवेदन नहीं है:

TextWriter tw = new StringWriter(); 
db.Log = tw; 
IQueryable<Customer> custQuery = 
    from cust in db.Customers 
    where cust.City == "London" 
    select cust; 

string output = tw.ToString(); 
// output variable has the generate SQL now