/// <summary>
 ///     Execute parameterized SQL that selects a single value.
 /// </summary>
 /// <typeparam name="T">The type to return.</typeparam>
 /// <param name="fullSql">The SQL to execute.</param>
 /// <param name="parameters">The parameters to use for this query.</param>
 /// <returns>
 ///     The first cell selected as <typeparamref name="T" />.
 /// </returns>
 public T ExecuteScalar <T>(string fullSql, object parameters) => ExecuteInternal(() =>
                                                                                  SharedConnection.ExecuteScalar <T>(fullSql, parameters, _transaction,
                                                                                                                     OneTimeCommandTimeout ?? CommandTimeout));
 /// <summary>
 ///     Execute SQL that selects a single value.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="fullSql">The SQL to execute for this Query</param>
 /// <returns>
 ///     The first cell selected as <see cref="object" />.
 /// </returns>
 public T ExecuteScalar <T>(string fullSql) => ExecuteInternal(() =>
                                                               SharedConnection.ExecuteScalar <T>(fullSql, null, _transaction, OneTimeCommandTimeout ?? CommandTimeout));