servicestackminiprofiler

Servicestack enable MiniProfiler on own DB Connection


In Mini Profiler documentation you can do the following :

public static DbConnection GetOpenConnection()
{
    var cnn = CreateRealConnection(); // A SqlConnection, SqliteConnection   ... or whatever

    // wrap the connection with a profiling connection that tracks timings 
    return new StackExchange.Profiling.Data.ProfiledDbConnection(cnn,     MiniProfiler.Current);
}

How would I enable a profiled db connection in Servicestack using Servicestack version of the Miniprofiler Implementation on my own DB Connection. I have a function that return a connectionstring instead of using servicestack's built in base.Db.

public static DbConnection GetOpenConnection(string ConnectionName)
    {
        string provider = ConfigurationManager.ConnectionStrings[ConnectionName].ProviderName;
        string connectionstring = ConfigurationManager.ConnectionStrings[ConnectionName].ConnectionString;

        DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
        DbConnection cnn = factory.CreateConnection();
        cnn.ConnectionString = connectionstring;
        cnn.Open();
        //this is ServiceStack current profiler for request and response DTO's
        Profiler profiler = Profiler.Current;
        // I want to return a profiled db connection here that will include the connection profiles into the current Profiler data.
        return cnn;

    }

Solution

  • You'd do the same as what Ormlite is doing and just wrap your connection with MiniProfiler's ProfiledDbConnection, e.g:

    return new ProfiledDbConnection(cnn, Profiler.Current)