Skip to content

Commit 17ed58b

Browse files
authored
Merge pull request #90 from ebalders/master-CommandTimeout
add command timeout to dapper results
2 parents 866c49f + d273ac1 commit 17ed58b

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

Griddly.Mvc/Results/DapperResult.cs

+6-5
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@ public abstract class DapperResult<T> : GriddlyResult<T>
1717
Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> _map;
1818
Action<IDbConnection, IDbTransaction, IList<T>> _massage;
1919
long? _overallCount = null;
20+
int? _commandTimeout = null;
2021

2122
protected string _outerSqlTemplate;
2223
protected string _sql;
2324
protected bool _fixedSort;
2425
protected static readonly bool _hasOverallCount = typeof(IHasOverallCount).IsAssignableFrom(typeof(T));
2526

26-
public DapperResult(Func<IDbConnection> getConnection, string sql, object param, Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> map, Action<IDbConnection, IDbTransaction, IList<T>> massage, bool fixedSort, Func<IDbTransaction> getTransaction, string outerSqlTemplate)
27+
public DapperResult(Func<IDbConnection> getConnection, string sql, object param, Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> map, Action<IDbConnection, IDbTransaction, IList<T>> massage, bool fixedSort, Func<IDbTransaction> getTransaction, string outerSqlTemplate, int? commandTimout = null)
2728
: base(null)
2829
{
2930
_getConnection = getConnection;
@@ -39,7 +40,7 @@ public DapperResult(Func<IDbConnection> getConnection, string sql, object param,
3940
_massage = massage;
4041
_fixedSort = fixedSort;
4142
_getTransaction = getTransaction;
42-
43+
_commandTimeout = commandTimout;
4344
}
4445

4546
public override void PopulateSummaryValues(GriddlySettings<T> settings)
@@ -91,7 +92,7 @@ public override IEnumerable<P> GetAllForProperty<P>(string propertyName, SortFie
9192
IDbConnection cn = _getConnection();
9293
IDbTransaction tx = _getTransaction != null ? _getTransaction() : null;
9394

94-
return cn.Query<P>(sql, _param, tx);
95+
return cn.Query<P>(sql, _param, tx, commandTimeout: _commandTimeout);
9596
}
9697
catch (Exception ex)
9798
{
@@ -132,7 +133,7 @@ protected virtual X ExecuteSingle<X>(string sql)
132133
IDbConnection cn = _getConnection();
133134
IDbTransaction tx = _getTransaction != null ? _getTransaction() : null;
134135

135-
return cn.Query<X>(sql, _param, tx).Single();
136+
return cn.Query<X>(sql, _param, tx, commandTimeout: _commandTimeout).Single();
136137
}
137138

138139
// TODO: return IEnumerable so we don't have to .ToList()
@@ -160,7 +161,7 @@ protected virtual IList<T> ExecuteQuery(string sql)
160161

161162
protected IEnumerable<T> DefaultMap(IDbConnection cn, IDbTransaction tx, string sql, object param)
162163
{
163-
IEnumerable<T> result = cn.Query<T>(sql, param, tx);
164+
IEnumerable<T> result = cn.Query<T>(sql, param, tx, commandTimeout: _commandTimeout);
164165

165166
var firstRow = result.FirstOrDefault();
166167
long? overallCount = null;

Griddly.Mvc/Results/DapperSql2008Result.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace Griddly.Mvc.Results
1010
{
1111
public class DapperSql2008Result<T> : DapperResult<T>
1212
{
13-
public DapperSql2008Result(Func<IDbConnection> getConnection, string sql, object param, Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> map = null, Action<IDbConnection, IDbTransaction, IList<T>> massage = null, bool fixedSort = false, Func<IDbTransaction> getTransaction = null, string outerSqlTemplate = "{0}")
14-
: base(getConnection, sql, param, map, massage, fixedSort, getTransaction, outerSqlTemplate)
13+
public DapperSql2008Result(Func<IDbConnection> getConnection, string sql, object param, Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> map = null, Action<IDbConnection, IDbTransaction, IList<T>> massage = null, bool fixedSort = false, Func<IDbTransaction> getTransaction = null, string outerSqlTemplate = "{0}", int? commandTimeout = null)
14+
: base(getConnection, sql, param, map, massage, fixedSort, getTransaction, outerSqlTemplate, commandTimeout)
1515
{ }
1616

1717
public override IList<T> GetPage(int pageNumber, int pageSize, SortField[] sortFields)

Griddly.Mvc/Results/DapperSql2012Result.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace Griddly.Mvc.Results
1010
{
1111
public class DapperSql2012Result<T> : DapperResult<T>
1212
{
13-
public DapperSql2012Result(Func<IDbConnection> getConnection, string sql, object param, Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> map = null, Action<IDbConnection, IDbTransaction, IList<T>> massage = null, bool fixedSort = false, Func<IDbTransaction> getTransaction = null, string outerSqlTemplate = "{0}")
14-
: base(getConnection, sql, param, map, massage, fixedSort, getTransaction, outerSqlTemplate)
13+
public DapperSql2012Result(Func<IDbConnection> getConnection, string sql, object param, Func<IDbConnection, IDbTransaction, string, object, IEnumerable<T>> map = null, Action<IDbConnection, IDbTransaction, IList<T>> massage = null, bool fixedSort = false, Func<IDbTransaction> getTransaction = null, string outerSqlTemplate = "{0}", int? commandTimeout = null)
14+
: base(getConnection, sql, param, map, massage, fixedSort, getTransaction, outerSqlTemplate, commandTimeout)
1515
{ }
1616

1717
public override IList<T> GetPage(int pageNumber, int pageSize, SortField[] sortFields)

0 commit comments

Comments
 (0)