我遇到了一个棘手的问题。我必须将指定的数据库操作记录到我的数据库日志表中。它是一个自定义表,与任何系统数据库表无关。它采用SQL语句的形式,但我使用NHibernate作为我的数据访问方法。
那我怎么做呢?
答案 0 :(得分:0)
确保记录所有命令的唯一方法是设置SQL跟踪并将所有命令记录到SQL Server表中。
答案 1 :(得分:0)
虽然我必须自己尝试以确保,但您应该能够使用自定义拦截器来执行此操作。检查IIInceptor并从EmptyInterceptor继承。这样的事情应该有效:
public class LogSqlInterceptor : EmptyInterceptor {
public SqlString OnPrepareStatement(SqlString sql) {
logger.Log(sql.ToString());
}
}
logger显然是用于记录sql语句的任何内容。它可能只是File.WriteLine()。我相当肯定这会做你想要的,但我现在无法测试它。