Muhammad Ali Hassan
Muhammad Ali Hassan

Reputation: 962

how to show generated sql query by fluent nhibernate

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

Answers (1)

Radim Köhler
Radim Köhler

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

Related Questions