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 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)));
 }