有没有办法在我的代码中访问完整的 SQL 查询(包括值)?
我可以使用 log4net 记录 SQL 查询:
<logger name="NHibernate.SQL" additivity="false">
<level value="ALL"/>
<appender-ref ref="NHibernateSQLFileLog"/>
</logger>
但是,我还想找到一种方法来记录代码中的 SQL 查询。这样,我将记录导致 try/catch 语句中出现异常的特定 SQL 查询。
现在我必须对 SQLFileLog 进行数据挖掘,以在发生异常时找到导致异常的查询,但效率不高。
您可以使用拦截器来执行此操作:
public class LoggingInterceptor : EmptyInterceptor {
public override SqlString OnPrepareStatement(SqlString sql) {
Debug.WriteLine(sql);
return sql;
}
}
See Nhibernate 文档(网络存档) https://web.archive.org/web/20101111183545/http://www.nhforge.org/doc/nh/en/index.html#objectstate-interceptors了解向 nhibernate 注册的不同方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)