如何查看nHibernate生成的SQL?

时间:2020-03-06 14:40:57  来源:igfitidea点击:

如何查看nHibernate生成的SQL?版本1.2

解决方案

使用sql server profiler。

编辑(一年后):正如@Toran Billups在下面指出的那样,NHibernate探查器Ayende编写的代码非常酷。

在配置设置中,将" show_sql"属性设置为true。
这将导致SQL由log4net在NHibernate的日志文件中输出。

NHibernate日志记录有很好的参考资料:如何配置Log4Net与NHibernate一起使用。它包括有关记录所有NHibernate生成的SQL语句的信息。

我们可以在app.config / web.config文件中放入以下内容:

在configSections节点中:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

在配置节点中:

<log4net>
  <appender name="NHibernateFileLog" type="log4net.Appender.FileAppender">
    <file value="logs/nhibernate.txt" />
    <appendToFile value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
    </layout>
  </appender>
  <logger name="NHibernate.SQL" additivity="false">
    <level value="DEBUG"/>
    <appender-ref ref="NHibernateFileLog"/>
  </logger>
</log4net>

而且别忘了打电话

log4net.Config.XmlConfigurator.Configure();

在应用程序启动时,或者将

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

在assemblyinfo.cs中

在配置设置中,将" show_sql"属性设置为true。

如果我们必须做任何严肃的事情,可以选择Nhibernate Profiler。

我们也可以尝试NHibernate Profiler(30天试用版,如果没有其他选择)。此工具是围绕IMHO最好的工具。

这不仅会显示生成的SQL,还会显示警告/建议/等