/// <summary> /// /// </summary> /// <param name="sql"></param> /// <param name="parameterValues"></param> /// <returns></returns> public override DbDataReader ExecuteReader(SqlWrap sql, IDictionary <string, object> parameterValues) { ArgumentAssertion.IsNotNull(sql, "sql"); Stopwatch stopwatch = null; var sqlProcessor = ObjectIOCFactory.GetSingleton <DataSettings>().SqlProcessor; if (sqlProcessor.EnableTrace) { stopwatch = Stopwatch.StartNew(); } var sqlText = this.TransformSql(sql.SqlText, parameterValues); var result = MySqlHelper.ExecuteReader(this.ConnectionString, sqlText, sql.CommandTimeout, ConvertToDbParams(parameterValues)); if (sqlProcessor.EnableTrace) { stopwatch.Stop(); sqlProcessor.Log(LogLevel.Trace, string.Format("[{0}]ExecuteSql({1})\r\n\t{2}", stopwatch.Elapsed, sql.FullName, sqlText), null); } return(result); }