Использование MiniProfiler для прямых вызовов ADO.net

Этот вопрос будет глупым для тех, кто является фанатами C# и профилировщиков.

Я новичок в C# (в основном разработчик C++) . Я могу профилировать запросы к базе данных, если он использует dbproviderfactory, но я не могу профилировать вызовы ado.net, когда он используется напрямую (raw SqlConnection & SqlCommand) . Я наткнулся на код Miniprofiler, где они также профилируют прямые вызовы ADO.net. Я просто не знаю, как его использовать (интегрировать его в свой профилировщик) .

Мой код

        SqlConnection myConn = new SqlConnection(@"Server=192.168.23.99;Initial Catalog=cat1;User ID=user21;Password=userpwd");
        SqlCommand myCommand = new SqlCommand("select * from table1", myConn);
        SqlDataReader dataReader;

        System.Threading.Thread.Sleep(5000);
        try
        {
            myConn.Open();
            dataReader = myCommand.ExecuteReader();

            GridView1.DataSource = dataReader;
            GridView1.DataBind();
            dataReader.Close();
            myCommand.Dispose();
            myConn.Close();
        }
        catch (System.Exception ex)
        {
            Response.Write(ex.ToString());
        }

Когда приведенный выше код будет выполнен, как будут вызываться классы в MiniProfiler? Как сделать эти классы (надеюсь, имя класса SimpleProfiledDbCommand) вызывается, когда мое веб-приложение вызывает SqlCommand(..).?

Нужно лучшее разъяснение по этому вопросу.

1 ответ

Согласно документации, вам нужно обернуть SqlConnection с предоставленным ProfiledDbConnection который может отслеживать ваши запросы:

SqlConnection underlyingConn = new SqlConnection(@"Server=192.168.23.99;Initial Catalog=cat1;User ID=user21;Password=userpwd");

SqlConnection myConn = new StackExchange.Profiling.Data.ProfiledDbConnection(underlyingConn, MiniProfiler.Current);
Другие вопросы по тегам