使用MiniProfiler直接调用ADO.net

时间:2015-01-21 09:26:47

标签: c# ado.net mvc-mini-profiler

对于那些在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中的类?当我的Web应用程序调用SqlCommand(..)时,如何调用这些类(希望类名为SimpleProfiledDbCommand)。

需要更好地澄清这一点。

1 个答案:

答案 0 :(得分:2)

根据documentation,您需要使用能够跟踪查询的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);