Using MiniProfiler’s database profiling with NHibernate

[UPDATE] Please see the following links for a version of that uses RealProxy to proxy the SqlCommand – batching is now supported

  • blog http://blog.fearofaflatplanet.me.uk/mvcminiprofiler-and-nhibernate-take-2
  • gist https://gist.github.com/1110153

I’ve left the original answer unaltered as it was accepted. [/UPDATE]

I’ve managed to partially get this to work by implementing a Profiled Client Driver (example for Sql Server 2008 below) – this works for simple examples, however I haven’t yet found a solution for NH batching (which attempts to cast the command back to SqlCommand)

public class ProfiledSql2008ClientDriver : Sql2008ClientDriver
{
    public override IDbCommand CreateCommand()
    {
        return new ProfiledDbCommand(
            base.CreateCommand() as DbCommand, 
            null,
            MiniProfiler.Current);
    }

    public override IDbConnection CreateConnection()
    {
        return ProfiledDbConnection.Get(
            base.CreateConnection() as DbConnection, 
            MiniProfiler.Current);
    }
}

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)