Reputation: 962
I am using fluent NHibernate. I want to see sql query which is generated by fluent NHibernate. Is there any way to get this query at runtime.
Upvotes: 1
Views: 3249
Reputation: 123901
Generated SQL could be observed in two ways. We can use log4net and output it into any kind of appender (e.g. file) like this:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\Logs\NH_SQL.log" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="[%-3d|%-4t|%-5p|%-75c] %m | %-10u %n" />
</layout>
<!-- example with file up to 1MB migrated into max 2 backup files -->
<appendToFile value="true" />
<maximumFileSize value="1MB" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
</appender>
<logger name="NHibernate.SQL">
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</logger>
Or we can use the setting show_sql
documented here
Which could be turned on like this:
Fluently
.Configure()
.Database( MsSqlConfiguration
.MsSql2008
.ShowSql()
...
And then all SQL statements will be written into console.
Upvotes: 1