gpt4 book ai didi

c# - 记录 NHibernate SQL 查询

转载 作者:可可西里 更新时间:2023-11-01 08:20:15 25 4
gpt4 key购买 nike

有没有办法在我的代码中访问完整的 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;
}
}

参见 Nhibernate Docs (webarchive)了解使用 nhibernate 注册它的不同方法。

关于c# - 记录 NHibernate SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2198869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com