Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 75e5354

Browse files
committed
Add missing IDb Param overloads to async API's
1 parent 6f33977 commit 75e5354

File tree

8 files changed

+263
-60
lines changed

8 files changed

+263
-60
lines changed

src/ServiceStack.OrmLite/Async/OrmLiteReadCommandExtensionsAsync.cs

Lines changed: 42 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ internal static Task<List<TModel>> SelectAsync<TModel>(this IDbCommand dbCmd, Ty
6969
internal static Task<List<TModel>> SelectFmtAsync<TModel>(this IDbCommand dbCmd, CancellationToken token, Type fromTableType, string sqlFilter, params object[] filterParams)
7070
{
7171
var sql = OrmLiteReadCommandExtensions.ToSelectFmt<TModel>(dbCmd.GetDialectProvider(), fromTableType, sqlFilter, filterParams);
72-
7372
return dbCmd.ConvertToListAsync<TModel>(sql.ToString(), token);
7473
}
7574

@@ -113,19 +112,21 @@ internal static Task<T> SingleWhereAsync<T>(this IDbCommand dbCmd, string name,
113112

114113
internal static Task<T> SingleAsync<T>(this IDbCommand dbCmd, object anonType, CancellationToken token)
115114
{
116-
dbCmd.SetFilters<T>(anonType, excludeDefaults: false);
115+
return dbCmd.SetFilters<T>(anonType, excludeDefaults: false).ConvertToAsync<T>(null, token);
116+
}
117117

118-
return dbCmd.ConvertToAsync<T>(null, token);
118+
internal static Task<T> SingleAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
119+
{
120+
return OrmLiteUtils.IsScalar<T>()
121+
? dbCmd.ScalarAsync<T>(sql, sqlParams, token)
122+
: dbCmd.SetParameters(sqlParams).ConvertToAsync<T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql), token);
119123
}
120124

121125
internal static Task<T> SingleAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
122126
{
123-
if (OrmLiteUtils.IsScalar<T>())
124-
return dbCmd.ScalarAsync<T>(sql, anonType, token);
125-
126-
dbCmd.SetParameters<T>(anonType, excludeDefaults: false);
127-
128-
return dbCmd.ConvertToAsync<T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql), token);
127+
return OrmLiteUtils.IsScalar<T>()
128+
? dbCmd.ScalarAsync<T>(sql, anonType, token)
129+
: dbCmd.SetParameters<T>(anonType, excludeDefaults: false).ConvertToAsync<T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql), token);
129130
}
130131

131132
internal static Task<List<T>> WhereAsync<T>(this IDbCommand dbCmd, string name, object value, CancellationToken token)
@@ -140,41 +141,42 @@ internal static Task<List<T>> WhereAsync<T>(this IDbCommand dbCmd, string name,
140141

141142
internal static Task<List<T>> WhereAsync<T>(this IDbCommand dbCmd, object anonType, CancellationToken token)
142143
{
143-
dbCmd.SetFilters<T>(anonType);
144+
return dbCmd.SetFilters<T>(anonType).ConvertToListAsync<T>(null, token);
145+
}
144146

147+
internal static Task<List<T>> SelectAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
148+
{
149+
dbCmd.SetParameters(sqlParams).CommandText = dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql);
145150
return dbCmd.ConvertToListAsync<T>(null, token);
146151
}
147152

148153
internal static Task<List<T>> SelectAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
149154
{
150-
if (anonType != null) dbCmd.SetParameters<T>(anonType, excludeDefaults: false);
151-
dbCmd.CommandText = dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql);
152-
155+
dbCmd.SetParameters<T>(anonType, excludeDefaults: false).CommandText = dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql);
153156
return dbCmd.ConvertToListAsync<T>(null, token);
154157
}
155158

156159
internal static Task<List<T>> SelectAsync<T>(this IDbCommand dbCmd, string sql, Dictionary<string, object> dict, CancellationToken token)
157160
{
158-
if (dict != null) dbCmd.SetParameters((IDictionary<string, object>)dict, (bool)false);
159-
160-
dbCmd.CommandText = dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql);
161+
dbCmd.SetParameters(dict, excludeDefaults: false).CommandText = dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql);
162+
return dbCmd.ConvertToListAsync<T>(null, token);
163+
}
161164

165+
internal static Task<List<T>> SqlListAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
166+
{
167+
dbCmd.SetParameters(sqlParams).CommandText = sql;
162168
return dbCmd.ConvertToListAsync<T>(null, token);
163169
}
164170

165171
internal static Task<List<T>> SqlListAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
166172
{
167-
if (anonType != null) dbCmd.SetParameters<T>(anonType, excludeDefaults: false);
168-
dbCmd.CommandText = sql;
169-
173+
dbCmd.SetParameters<T>(anonType, excludeDefaults: false).CommandText = sql;
170174
return dbCmd.ConvertToListAsync<T>(null, token);
171175
}
172176

173177
internal static Task<List<T>> SqlListAsync<T>(this IDbCommand dbCmd, string sql, Dictionary<string, object> dict, CancellationToken token)
174178
{
175-
if (dict != null) dbCmd.SetParameters(dict, false);
176-
dbCmd.CommandText = sql;
177-
179+
dbCmd.SetParameters(dict, excludeDefaults: false).CommandText = sql;
178180
return dbCmd.ConvertToListAsync<T>(null, token);
179181
}
180182

@@ -186,55 +188,52 @@ internal static Task<List<T>> SqlListAsync<T>(this IDbCommand dbCmd, string sql,
186188
return dbCmd.ConvertToListAsync<T>(null, token);
187189
}
188190

189-
internal static Task<List<T>> SqlColumnAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
191+
internal static Task<List<T>> SqlColumnAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
190192
{
191-
if (anonType != null) dbCmd.SetParameters<T>(anonType, excludeDefaults: false);
192-
dbCmd.CommandText = sql;
193+
dbCmd.SetParameters(sqlParams).CommandText = sql;
194+
return dbCmd.ConvertToListAsync<T>(null, token);
195+
}
193196

197+
internal static Task<List<T>> SqlColumnAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
198+
{
199+
dbCmd.SetParameters(anonType, excludeDefaults: false).CommandText = sql;
194200
return dbCmd.ConvertToListAsync<T>(null, token);
195201
}
196202

197203
internal static Task<List<T>> SqlColumnAsync<T>(this IDbCommand dbCmd, string sql, Dictionary<string, object> dict, CancellationToken token)
198204
{
199-
if (dict != null) dbCmd.SetParameters(dict, false);
200-
dbCmd.CommandText = sql;
201-
205+
dbCmd.SetParameters(dict, excludeDefaults: false).CommandText = sql;
202206
return dbCmd.ConvertToListAsync<T>(null, token);
203207
}
204208

205-
internal static Task<T> SqlScalarAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
209+
internal static Task<T> SqlScalarAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
206210
{
207-
if (anonType != null) dbCmd.SetParameters<T>(anonType, excludeDefaults: false);
211+
return dbCmd.SetParameters(sqlParams).ScalarAsync<T>(sql, token);
212+
}
208213

209-
return dbCmd.ScalarAsync<T>(sql, token);
214+
internal static Task<T> SqlScalarAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
215+
{
216+
return dbCmd.SetParameters<T>(anonType, excludeDefaults: false).ScalarAsync<T>(sql, token);
210217
}
211218

212219
internal static Task<T> SqlScalarAsync<T>(this IDbCommand dbCmd, string sql, Dictionary<string, object> dict, CancellationToken token)
213220
{
214-
if (dict != null) dbCmd.SetParameters(dict, false);
215-
216-
return dbCmd.ScalarAsync<T>(sql, token);
221+
return dbCmd.SetParameters(dict, excludeDefaults: false).ScalarAsync<T>(sql, token);
217222
}
218223

219224
internal static Task<List<T>> SelectNonDefaultsAsync<T>(this IDbCommand dbCmd, object filter, CancellationToken token)
220225
{
221-
dbCmd.SetFilters<T>(filter, excludeDefaults: true);
222-
223-
return dbCmd.ConvertToListAsync<T>(null, token);
226+
return dbCmd.SetFilters<T>(filter, excludeDefaults: true).ConvertToListAsync<T>(null, token);
224227
}
225228

226229
internal static Task<List<T>> SelectNonDefaultsAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
227230
{
228-
if (anonType != null) dbCmd.SetParameters<T>(anonType, excludeDefaults: true);
229-
230-
return dbCmd.ConvertToListAsync<T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql), token);
231+
return dbCmd.SetParameters<T>(anonType, excludeDefaults: true).ConvertToListAsync<T>(dbCmd.GetDialectProvider().ToSelectStatement(typeof(T), sql), token);
231232
}
232233

233234
internal static Task<T> ScalarAsync<T>(this IDbCommand dbCmd, string sql, object anonType, CancellationToken token)
234235
{
235-
if (anonType != null) dbCmd.SetParameters<T>(anonType, excludeDefaults: false);
236-
237-
return dbCmd.ScalarAsync<T>(sql, token);
236+
return dbCmd.SetParameters<T>(anonType, excludeDefaults: false).ScalarAsync<T>(sql, token);
238237
}
239238

240239
internal static Task<T> ScalarFmtAsync<T>(this IDbCommand dbCmd, CancellationToken token, string sql, params object[] sqlParams)

src/ServiceStack.OrmLite/Async/OrmLiteResultsFilterExtensionsAsync.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,11 @@ public static Task<T> ScalarAsync<T>(this IDbCommand dbCmd)
135135
return dbCmd.ScalarAsync<T>(null, default(CancellationToken));
136136
}
137137

138+
public static Task<T> ScalarAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
139+
{
140+
return dbCmd.SetParameters(sqlParams).ScalarAsync<T>(sql, token);
141+
}
142+
138143
public static Task<T> ScalarAsync<T>(this IDbCommand dbCmd, string sql, CancellationToken token)
139144
{
140145
if (sql != null)
@@ -193,6 +198,11 @@ internal static Task<T> ExprConvertToAsync<T>(this IDbCommand dbCmd, string sql,
193198
.Then(reader => reader.ConvertToAsync<T>(dialectProvider, token)).Unwrap();
194199
}
195200

201+
internal static Task<List<T>> ColumnAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
202+
{
203+
return dbCmd.SetParameters(sqlParams).ColumnAsync<T>(sql, token);
204+
}
205+
196206
internal static Task<List<T>> ColumnAsync<T>(this IDbCommand dbCmd, string sql, CancellationToken token)
197207
{
198208
if (sql != null)
@@ -206,6 +216,11 @@ internal static Task<List<T>> ColumnAsync<T>(this IDbCommand dbCmd, string sql,
206216
.Then(reader => reader.ColumnAsync<T>(dialectProvider, token)).Unwrap();
207217
}
208218

219+
internal static Task<HashSet<T>> ColumnDistinctAsync<T>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
220+
{
221+
return dbCmd.SetParameters(sqlParams).ColumnDistinctAsync<T>(sql, token);
222+
}
223+
209224
internal static Task<HashSet<T>> ColumnDistinctAsync<T>(this IDbCommand dbCmd, string sql, CancellationToken token)
210225
{
211226
if (sql != null)
@@ -219,6 +234,11 @@ internal static Task<HashSet<T>> ColumnDistinctAsync<T>(this IDbCommand dbCmd, s
219234
.Then(reader => reader.ColumnDistinctAsync<T>(dialectProvider, token)).Unwrap();
220235
}
221236

237+
internal static Task<Dictionary<K, V>> DictionaryAsync<K, V>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
238+
{
239+
return dbCmd.SetParameters(sqlParams).DictionaryAsync<K, V>(sql, token);
240+
}
241+
222242
internal static Task<Dictionary<K, V>> DictionaryAsync<K, V>(this IDbCommand dbCmd, string sql, CancellationToken token)
223243
{
224244
if (sql != null)
@@ -232,6 +252,11 @@ internal static Task<Dictionary<K, V>> DictionaryAsync<K, V>(this IDbCommand dbC
232252
.Then(reader => reader.DictionaryAsync<K, V>(dialectProvider, token)).Unwrap();
233253
}
234254

255+
internal static Task<Dictionary<K, List<V>>> LookupAsync<K, V>(this IDbCommand dbCmd, string sql, IEnumerable<IDbDataParameter> sqlParams, CancellationToken token)
256+
{
257+
return dbCmd.SetParameters(sqlParams).LookupAsync<K, V>(sql, token);
258+
}
259+
235260
internal static Task<Dictionary<K, List<V>>> LookupAsync<K, V>(this IDbCommand dbCmd, string sql, CancellationToken token)
236261
{
237262
if (sql != null)

src/ServiceStack.OrmLite/OrmLiteReadApi.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ public static List<T> Select<T>(this IDbConnection dbConn, string sql)
2828

2929
/// <summary>
3030
/// Returns results from using sql. E.g:
31-
/// <para>db.Select&lt;Person&gt;("Age &gt; 40")</para>
32-
3331
/// <para>db.Select&lt;Person&gt;("SELECT * FROM Person WHERE Age &gt; @age", new[] { db.CreateParam("age", 40) })</para>
3432
/// </summary>
3533
public static List<T> Select<T>(this IDbConnection dbConn, string sql, IEnumerable<IDbDataParameter> sqlParams)

0 commit comments

Comments
 (0)