我正在使用流利的NHibernate。我想看看由流畅的NHibernate生成的sql查询。有没有办法在运行时获取此查询。
答案 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语句都将写入控制台。