我知道如何使用show_sql配置选项在运行时将SQL记录到log4net/NLog/trace窗口.
我正在寻找的是一种给Query<T>()NHibernate检索生成的SQL的方法.
我查看了Persister类,Drivers,不同的拦截器和事件.有很多地方可以看,即使缩小搜索范围也会有很大的帮助.
有没有办法在我的代码中访问完整的SQL查询,包括值?
我能够使用log4net记录SQL查询:
<logger name="NHibernate.SQL" additivity="false">
<level value="ALL"/>
<appender-ref ref="NHibernateSQLFileLog"/>
</logger>
Run Code Online (Sandbox Code Playgroud)
但是,我想找到一种从代码中记录SQL查询的方法.这样我将在try/catch语句中记录导致异常的特定SQL查询.
现在,我必须对SQLFileLog进行数据挖掘,以便在发生异常时找到导致异常的查询并且效率不高.