如何通过流畅的nhibernate显示生成的sql查询

时间:2014-06-29 11:50:12

标签: nhibernate fluent-nhibernate

我正在使用流利的NHibernate。我想看看由流畅的NHibernate生成的sql查询。有没有办法在运行时获取此查询。

1 个答案:

答案 0 :(得分:1)

可以通过两种方式观察生成的SQL。我们可以使用log4net并将其输出到任何类型的appender(例如文件)中,如下所示:

<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>

或者我们可以使用此处记录的show_sql设置

可以像这样开启:

Fluently
   .Configure()
   .Database( MsSqlConfiguration
        .MsSql2008
        .ShowSql()
        ...

然后所有SQL语句都将写入控制台。