我在Web表单应用程序中有一个现有的数据库连接功能,我想与
mini profiler集成.我在应用程序上安装并运行了迷你探查器,但我似乎无法正确连接数据库部分.下面是我们连接到db的代码的一部分.
public override IEnumerable<IDataRecord> Execute() { using( sqlConnection conn = new sqlConnection( ConnectionString ) ) { using( sqlCommand command = new sqlCommand( CommandText,conn ) ) { command.CommandType = sqlCommandType; foreach( sqlParameter p in ParamsToAdd ) { command.Parameters.Add( p ); } conn.Open(); sqlDataReader rdr; try { rdr = command.ExecuteReader(); } catch( Exception ex ) { //log error } using( rdr ) { while( rdr.Read() ) { yield return (IDataRecord)rdr; } } } } }
我可以像这样轻松地绕过ExecuteReader():
using( MiniProfiler.Current.Step( command.CommandText ) ) { rdr = command.ExecuteReader(); }
解决方法
您可以尝试使用此代码 – 基于ProfiledDbConnection类
var connection = MiniProfiler.Data.ProfiledDbConnection.Get(new sqlConnection(str)); var cmd = connection.CreateCommand(); var param = connection.CreateParameter();
链接:https://github.com/ServiceStack/ServiceStack/tree/master/src/ServiceStack/MiniProfiler/Data