/// <summary>
        /// Executes a single-row query, returning the data typed as per <typeparamref name="T"/>.
        /// </summary>
        /// <param name="connection">The database connection.</param>
        /// <param name="key">The named identifier of the SQL script.</param>
        /// <param name="param">Optional collection of parameters used by SQL script and transformer.</param>
        /// <param name="transaction">The transaction to use for this query.</param>
        /// <param name="commandTimeout">Number of seconds before command execution timeout.</param>
        /// <param name="commandType">Is it a stored proc or a batch?</param>
        public static T QuerySingleScript <T>(this ISqlScriptConnection connection, string key, object param = null, IDbTransaction transaction = null, int?commandTimeout = null, CommandType?commandType = null)
        {
            var sql = connection.GetScriptSql(key, param);

            return(connection.QuerySingle <T>(sql, param, transaction, commandTimeout, commandType));
        }
 /// <summary>
 /// Executes a single-row query, returning the data typed as per <typeparamref name="T"/>.
 /// </summary>
 /// <param name="connection">The database connection.</param>
 /// <param name="command">The command to execute on this connection.</param>
 public static T QuerySingleScript <T>(this ISqlScriptConnection connection, ScriptCommandDefinition command)
 {
     return(connection.QuerySingle <T>(command.ToSqlDefinition(connection)));
 }