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

how to show generated sql query by fluent nhibernate

我正在使用流畅的 NHibernate。我想看看 fluent NHibernate 生成的 sql 查询。有什么方法可以在运行时获取此查询。


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <file value="c:\\Logs\
H_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 -->
   
    <maximumFileSize value="1MB" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="2" />
</appender>

<logger name="NHibernate.SQL">
    <level value="ALL" />
   
</logger>

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

  • 3.5.可选配置属性

可以这样开启:

1
2
3
4
5
6
Fluently
   .Configure()
   .Database( MsSqlConfiguration
        .MsSql2008
        .ShowSql()
        ...

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