Chris Pietschmann

husband, father, hacker, entrepreneur, futurist, innovator, autodidact

NAVIGATION - SEARCH

Using MiniProfiler with SqlDataSource ASP.NET WebForms Control

I recently implemented MiniProfiler into an existing ASP.NET WebForms application that makes use of databinding to the SqlDataSource control. Since the SqlDataSource uses a DbProviderFactory internally, it is fairly simple to exend the control to utilize MiniProfiler through inheritance and overriding a single method of the SqlDataSource.

Here’s a very simple class that inherits from the SqlDataSource control and injects MiniProfiler support to be able to profile the SQL query used by the control:

public class ProfiledSqlDataSource : SqlDataSource
{
    protected override DbProviderFactory  GetDbProviderFactory()
    {
        // get the "base" DbProviderFactory
        var baseDbProviderFactory = base.GetDbProviderFactory();
        // Return a ProfiledDbProviderFactory from MiniProfiler
        // that wraps the "base" DbProviderFactory
        return new ProfiledDbProviderFactory(
            MiniProfiler.Current,
            baseDbProviderFactory
        );
    }
}
blog comments powered by Disqus