public Dictionary <TKey, TValue> Dictionary <TKey, TValue>(Sql Sql)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.Dictionary <TKey, TValue>(Sql)));
 }
 public void BeginTransaction()
 {
     InternalDb.BeginTransaction();
 }
 public void AbortTransaction()
 {
     InternalDb.AbortTransaction();
 }
 public DbCommand CreateCommand(DbConnection connection, CommandType commandType, string sql, params object[] args)
 {
     return(InternalDb.CreateCommand(connection, commandType, sql, args));
 }
 public ITransaction GetTransaction(IsolationLevel isolationLevel)
 {
     return(InternalDb.GetTransaction(isolationLevel));
 }
 public Task <T> ExecuteScalarAsync <T>(Sql sql)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.ExecuteScalarAsync <T>(sql)));
 }
 public Task <int> ExecuteAsync(Sql sql)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.ExecuteAsync(sql)));
 }
 public Tuple <List <T1>, List <T2>, List <T3>, List <T4> > FetchMultiple <T1, T2, T3, T4>(Sql sql)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.FetchMultiple <T1, T2, T3, T4>(sql)));
 }
 public Task <T> SingleOrDefaultByIdAsync <T>(object primaryKey)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.SingleOrDefaultByIdAsync <T>(primaryKey)));
 }
 public TRet FetchMultiple <T1, T2, T3, T4, TRet>(Func <List <T1>, List <T2>, List <T3>, List <T4>, TRet> cb, Sql sql)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.FetchMultiple(cb, sql)));
 }
 public Tuple <List <T1>, List <T2>, List <T3>, List <T4> > FetchMultiple <T1, T2, T3, T4>(string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.FetchMultiple <T1, T2, T3, T4>(sql, args)));
 }
 public TRet FetchMultiple <T1, T2, T3, T4, TRet>(Func <List <T1>, List <T2>, List <T3>, List <T4>, TRet> cb, string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.FetchMultiple(cb, sql, args)));
 }
 public bool Exists <T>(object primaryKey)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.Exists <T>(primaryKey)));
 }
 public Dictionary <TKey, TValue> Dictionary <TKey, TValue>(string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.Dictionary <TKey, TValue>(sql, args)));
 }
 public Task <List <T> > SkipTakeAsync <T>(long skip, long take, Sql sql)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.SkipTakeAsync <T>(skip, take, sql)));
 }
 public Task <IEnumerable <T> > QueryAsync <T>(string sql, object[] args)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.QueryAsync <T>(sql, args)));
 }
 public Task <T> ExecuteScalarAsync <T>(string sql, object[] args)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.ExecuteScalarAsync <T>(sql, args)));
 }
 public Task <IEnumerable <T> > QueryAsync <T>(Sql sql)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.QueryAsync <T>(sql)));
 }
 public Task <int> ExecuteAsync(string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.ExecuteAsync(sql, args)));
 }
 public Task <List <T> > FetchAsync <T>(string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.FetchAsync <T>(sql, args)));
 }
 public void AddParameter(DbCommand cmd, object value)
 {
     InternalDb.AddParameter(cmd, value);
 }
 public Task <List <T> > FetchAsync <T>()
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.FetchAsync <T>()));
 }
 public ITransaction GetTransaction()
 {
     return(InternalDb.GetTransaction());
 }
 public Task <List <T> > FetchAsync <T>(long page, long itemsPerPage, string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.FetchAsync <T>(page, itemsPerPage, sql, args)));
 }
 public void SetTransaction(DbTransaction tran)
 {
     InternalDb.SetTransaction(tran);
 }
 public Task <List <T> > FetchAsync <T>(long page, long itemsPerPage, Sql sql)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.FetchAsync <T>(page, itemsPerPage, sql)));
 }
 public void BeginTransaction(IsolationLevel isolationLevel)
 {
     InternalDb.BeginTransaction(isolationLevel);
 }
 public Task <List <T> > SkipTakeAsync <T>(long skip, long take, string sql, params object[] args)
 {
     return(RetryPolicy.ExecuteAsync(() => InternalDb.SkipTakeAsync <T>(skip, take, sql, args)));
 }
 public void CompleteTransaction()
 {
     InternalDb.CompleteTransaction();
 }
 public T FirstOrDefaultInto <T>(T instance, Sql sql)
 {
     return(RetryPolicy.ExecuteAction(() => InternalDb.FirstOrDefaultInto(instance, sql)));
 }