public class NHSQLInterceptor : EmptyInterceptor, IInterceptor { NHibernate.SqlCommand.SqlString IInterceptor.OnPrepareStatement(NHibernate.SqlCommand.SqlString sql) { // SQL.NHibernateSQL is static property SQL.NHibernateSQL = sql.ToString(); return sql; } }
On configuration:
var config = new Configuration(); ... ... config.SetInterceptor(new SQLInterceptor()); ... ... ISessionFactory factory = config.BuildSessionFactory(); ... ... factory.OpenSession(config.Interceptor); // turns out passing the interceptor to session is not needed, interceptors still gets called despite removing this
Then I found something simpler on stackoverflow:
public class SqlStatementInterceptor : EmptyInterceptor { public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql) { SQL.NHibernateSQL = sql.ToString(); return sql; } }
Happy Coding!
No comments:
Post a Comment