द्वारा उत्पन्न क्वेरी को कैसे जानें I डेटा बेस पर कुछ चुनिंदा क्वेरी को आग लगाने के लिए लिनक को निबर्ननेट में उपयोग कर रहा हूं।Fluent NHibernate
मेरा प्रश्न है, फ्लुएंट एनएचबर्ननेट द्वारा उत्पन्न क्वेरी, मुझे कैसे पता चलेगा?
द्वारा उत्पन्न क्वेरी को कैसे जानें I डेटा बेस पर कुछ चुनिंदा क्वेरी को आग लगाने के लिए लिनक को निबर्ननेट में उपयोग कर रहा हूं।Fluent NHibernate
मेरा प्रश्न है, फ्लुएंट एनएचबर्ननेट द्वारा उत्पन्न क्वेरी, मुझे कैसे पता चलेगा?
यदि आप SQL4 को लॉग 4नेट में रखना चाहते हैं, तो सुनिश्चित करें कि आप अपने कॉन्फ़िगरेशन अनुभाग में लॉगर सेट करें।
मैंने एनएचबीर्नेट पैकेज को "INFO" पर शोर और NHibernate.SQL को कम करने के लिए रखा ताकि सभी SQL कथन लॉग कर सकें।
<logger name="NHibernate"> <level value="INFO" /> </logger> <logger name="NHibernate.SQL"> <level value="ALL" /> </logger>
this देखें। आपको क्या चाहिए hibernate.show_sql
।
धन्यवाद .. ............. –
आप फ़्लुएंट एनएचबेर्नेट के साथ इसे कैसे कॉन्फ़िगर करते हैं? –
, आप show_sql
इस तरह चालू कर सकते हैं:
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...))...
NHibernate अब Console.Out
के लिए हर एसक्यूएल बयान प्रिंट होगा।
हाय केविन, इसे पोस्ट करने के लिए धन्यवाद! मुझे आश्चर्य है कि क्या आपने Log4Net को भी लगाया है, इसलिए यह जेनरेट की गई एसक्यूएल को फाइल में भेजता है? – 5x1llz
यह बहुत निराशाजनक है। कोई विचार क्यों यह कभी काम नहीं करेगा? मैं अपने कंसोल के माध्यम से देख रहा हूं और यह अभी नहीं है। – Milimetric
आप यह भी हो सकता है इस उपयोगी http://nhprof.com/
तुम भी this one तरह एसक्यूएल प्रोफाइलर उपयोग कर सकते हैं।
आप log4net में भी हुक कर सकते हैं।
निश्चित रूप से NHProf खरीदें और उपयोग करें। यह एक शानदार उत्पाद है और न केवल आपको दिखाता है कि कौन से प्रश्न चल रहे हैं, बल्कि यह आपके एनएचबीर्नेट मैपिंग और प्रश्नों के साथ संभावित प्रदर्शन समस्याओं को भी दिखाता है।
मुझे निबर्ननेट और धाराप्रवाह निबर्ननेट में एसक्यूएल क्वेरी जानने के लिए 4 विकल्प मिल गए हैं।
इंटरसेप्टर - एसक्यूएल देखना वास्तव में अच्छा है। हम इसे विजुअल स्टूडियो के आउटपुट में और लॉग फ़ाइल में भी डाल सकते हैं।
ISessionFactory sf = Fluently.Configure()
.Database(MySQLConfiguration.Standard.ConnectionString(ConnectionString).ShowSql())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Stock>())
.ExposeConfiguration(c => c.SetInterceptor(new ABCInterceptor()))
.BuildSessionFactory();
public class ABCInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
Trace.WriteLine(sql.ToString());
return sql;
}
}
धाराप्रवाह NHibernate ** नहीं ** किसी भी प्रश्न उत्पन्न करता है। यह एनएचबीर्नेट है जो उन्हें उत्पन्न करता है। –
मुझे लगता है कि यह प्रश्न आपकी मदद कर सकता है: http://stackoverflow.com/questions/474659/how-to-log-sql-calls-with-nhibernate-to-the-console-of-visual-studio – HerbalMart