最近研究NHibernate和Hibernate,看到网上有人用NHibernate Profiler来查看NHibernate每一次访问数据库所生成的SQL语句等,在网上搜寻了下,没有完整的教程,先给出我的教程:
NHibernate Profiler,但是官网下载的需要注册文件,推荐上这里去下载破解版,另外需要注意的是破解版的方法和注册版的方法不能共用

破解版方法如下:
配置方法:(首先需要添加HibernatingRhinos.NHibernate.Profiler.Appender.dll引用
添加log4net.config文件
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <appender name="NHProfAppender"
            type="HibernatingRhinos.Profiler.Appender.NHibernate.NHProfOfflineAppender,
            HibernatingRhinos.Profiler.Appender" >
        <file value="nhprof_output.nhprof" />
    </appender>
    <logger name="HibernatingRhinos.Profiler.Appender.NHibernate.NHProfAppender.Setup">
        <appender-ref ref="NHProfAppender"/>
    </logger>
</log4net>

并在NHibernate加载代码,
ISessionFactory factory= new Configuration().Configure().BuildSessionFactory();
前加上
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));//文件位置不同,代码不同
HibernatingRhinos.NHibernate.Profiler.Appender.NHibernateProfiler.Initialize();
ISessionFactory factory= new Configuration().Configure().BuildSessionFactory();
然后运行
NHibernate Profiler,再运行程序,就能看到Nhibernate中的SQL语句了

--------------------分割线---------------------
正式版方法如下:
配置方法:(首先需要添加HibernatingRhinos.Profiler.Appender.dll
引用)
配置文件同上,但是代码需要改成:
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
 HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
 ISessionFactory factory= new Configuration().Configure().BuildSessionFactory();