@@ -138,8 +138,11 @@ internal static void SetFilters<T>(this IDbCommand dbCmd, object anonType, bool
138
138
dbCmd . CommandText = dbCmd . GetFilterSql < T > ( ) ;
139
139
}
140
140
141
- internal static void SetParameters < T > ( this IDbCommand dbCmd , object anonType , bool excludeDefaults )
141
+ internal static IDbCommand SetParameters < T > ( this IDbCommand dbCmd , object anonType , bool excludeDefaults )
142
142
{
143
+ if ( anonType == null )
144
+ return dbCmd ;
145
+
143
146
dbCmd . Parameters . Clear ( ) ;
144
147
lastQueryType = null ;
145
148
@@ -174,6 +177,8 @@ internal static void SetParameters<T>(this IDbCommand dbCmd, object anonType, bo
174
177
175
178
dbCmd . Parameters . Add ( p ) ;
176
179
} ) ;
180
+
181
+ return dbCmd ;
177
182
}
178
183
179
184
internal delegate void ParamIterDelegate ( PropertyInfo pi , string columnName , object value ) ;
@@ -240,13 +245,13 @@ internal static List<string> NonDefaultFields<T>(this object anonType)
240
245
return ret ;
241
246
}
242
247
243
- internal static void SetParameters ( this IDbCommand dbCmd , object anonType , bool excludeDefaults )
248
+ internal static IDbCommand SetParameters ( this IDbCommand dbCmd , object anonType , bool excludeDefaults )
244
249
{
245
- dbCmd . Parameters . Clear ( ) ;
246
- lastQueryType = null ;
247
250
if ( anonType == null )
248
- return ;
251
+ return dbCmd ;
249
252
253
+ dbCmd . Parameters . Clear ( ) ;
254
+ lastQueryType = null ;
250
255
var pis = anonType . GetType ( ) . GetSerializableProperties ( ) ;
251
256
252
257
foreach ( var pi in pis )
@@ -267,13 +272,16 @@ internal static void SetParameters(this IDbCommand dbCmd, object anonType, bool
267
272
p . Value = value ?? DBNull . Value ;
268
273
dbCmd . Parameters . Add ( p ) ;
269
274
}
275
+ return dbCmd ;
270
276
}
271
277
272
- internal static void SetParameters ( this IDbCommand dbCmd , IDictionary < string , object > dict , bool excludeDefaults )
278
+ internal static IDbCommand SetParameters ( this IDbCommand dbCmd , IDictionary < string , object > dict , bool excludeDefaults )
273
279
{
280
+ if ( dict == null )
281
+ return dbCmd ;
282
+
274
283
dbCmd . Parameters . Clear ( ) ;
275
284
lastQueryType = null ;
276
- if ( dict == null ) return ;
277
285
278
286
foreach ( var kvp in dict )
279
287
{
@@ -291,6 +299,7 @@ internal static void SetParameters(this IDbCommand dbCmd, IDictionary<string, ob
291
299
p . Value = value ?? DBNull . Value ;
292
300
dbCmd . Parameters . Add ( p ) ;
293
301
}
302
+ return dbCmd ;
294
303
}
295
304
296
305
public static void SetFilters < T > ( this IDbCommand dbCmd , object anonType )
@@ -367,13 +376,22 @@ internal static T Single<T>(this IDbCommand dbCmd, object anonType)
367
376
return dbCmd . ConvertTo < T > ( ) ;
368
377
}
369
378
370
- internal static T Single < T > ( this IDbCommand dbCmd , string sql , object anonType )
379
+ internal static T Single < T > ( this IDbCommand dbCmd , string sql , IEnumerable < IDbDataParameter > sqlParams )
371
380
{
372
- if ( OrmLiteUtils . IsScalar < T > ( ) ) return Scalar < T > ( dbCmd , sql , anonType ) ;
381
+ dbCmd . SetParameters ( sqlParams ) ;
382
+
383
+ return OrmLiteUtils . IsScalar < T > ( )
384
+ ? dbCmd . Scalar < T > ( sql )
385
+ : dbCmd . ConvertTo < T > ( dbCmd . GetDialectProvider ( ) . ToSelectStatement ( typeof ( T ) , sql ) ) ;
386
+ }
373
387
388
+ internal static T Single < T > ( this IDbCommand dbCmd , string sql , object anonType )
389
+ {
374
390
dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) ;
375
391
376
- return dbCmd . ConvertTo < T > ( dbCmd . GetDialectProvider ( ) . ToSelectStatement ( typeof ( T ) , sql ) ) ;
392
+ return OrmLiteUtils . IsScalar < T > ( )
393
+ ? dbCmd . Scalar < T > ( sql )
394
+ : dbCmd . ConvertTo < T > ( dbCmd . GetDialectProvider ( ) . ToSelectStatement ( typeof ( T ) , sql ) ) ;
377
395
}
378
396
379
397
internal static List < T > Where < T > ( this IDbCommand dbCmd , string name , object value )
@@ -393,6 +411,12 @@ internal static List<T> Where<T>(this IDbCommand dbCmd, object anonType)
393
411
return dbCmd . ConvertToList < T > ( ) ;
394
412
}
395
413
414
+ internal static List < T > Select < T > ( this IDbCommand dbCmd , string sql , IEnumerable < IDbDataParameter > sqlParams )
415
+ {
416
+ dbCmd . SetParameters ( sqlParams ) . CommandText = dbCmd . GetDialectProvider ( ) . ToSelectStatement ( typeof ( T ) , sql ) ;
417
+ return dbCmd . ConvertToList < T > ( ) ;
418
+ }
419
+
396
420
internal static List < T > Select < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
397
421
{
398
422
if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) ;
@@ -409,6 +433,13 @@ internal static List<T> Select<T>(this IDbCommand dbCmd, string sql, Dictionary<
409
433
return dbCmd . ConvertToList < T > ( ) ;
410
434
}
411
435
436
+ internal static List < T > SqlList < T > ( this IDbCommand dbCmd , string sql , IEnumerable < IDbDataParameter > sqlParams )
437
+ {
438
+ dbCmd . CommandText = sql ;
439
+
440
+ return dbCmd . SetParameters ( sqlParams ) . ConvertToList < T > ( ) ;
441
+ }
442
+
412
443
internal static List < T > SqlList < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
413
444
{
414
445
if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) ;
@@ -433,11 +464,15 @@ internal static List<T> SqlList<T>(this IDbCommand dbCmd, string sql, Action<IDb
433
464
return dbCmd . ConvertToList < T > ( ) ;
434
465
}
435
466
436
- internal static List < T > SqlColumn < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
467
+ internal static List < T > SqlColumn < T > ( this IDbCommand dbCmd , string sql , IEnumerable < IDbDataParameter > sqlParams )
437
468
{
438
- if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) ;
439
- dbCmd . CommandText = sql ;
469
+ dbCmd . SetParameters ( sqlParams ) . CommandText = sql ;
470
+ return dbCmd . ConvertToList < T > ( ) ;
471
+ }
440
472
473
+ internal static List < T > SqlColumn < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
474
+ {
475
+ dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) . CommandText = sql ;
441
476
return dbCmd . ConvertToList < T > ( ) ;
442
477
}
443
478
@@ -449,6 +484,11 @@ internal static List<T> SqlColumn<T>(this IDbCommand dbCmd, string sql, Dictiona
449
484
return dbCmd . ConvertToList < T > ( ) ;
450
485
}
451
486
487
+ internal static T SqlScalar < T > ( this IDbCommand dbCmd , string sql , IEnumerable < IDbDataParameter > sqlParams )
488
+ {
489
+ return dbCmd . SetParameters ( sqlParams ) . Scalar < T > ( sql ) ;
490
+ }
491
+
452
492
internal static T SqlScalar < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
453
493
{
454
494
if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) ;
@@ -674,11 +714,14 @@ internal static List<T> Column<T>(this IDataReader reader, IOrmLiteDialectProvid
674
714
return columValues ;
675
715
}
676
716
677
- internal static HashSet < T > ColumnDistinct < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
717
+ internal static HashSet < T > ColumnDistinct < T > ( this IDbCommand dbCmd , string sql , IEnumerable < IDbDataParameter > sqlParams )
678
718
{
679
- if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) ;
719
+ return dbCmd . SetParameters ( sqlParams ) . ColumnDistinct < T > ( sql ) ;
720
+ }
680
721
681
- return dbCmd . ColumnDistinct < T > ( sql ) ;
722
+ internal static HashSet < T > ColumnDistinct < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
723
+ {
724
+ return dbCmd . SetParameters < T > ( anonType , excludeDefaults : false ) . ColumnDistinct < T > ( sql ) ;
682
725
}
683
726
684
727
internal static HashSet < T > ColumnDistinctFmt < T > ( this IDbCommand dbCmd , string sql , params object [ ] sqlParams )
@@ -702,9 +745,7 @@ internal static HashSet<T> ColumnDistinct<T>(this IDataReader reader, IOrmLiteDi
702
745
703
746
internal static Dictionary < K , List < V > > Lookup < K , V > ( this IDbCommand dbCmd , string sql , object anonType = null )
704
747
{
705
- if ( anonType != null ) SetParameters ( dbCmd , anonType , ( bool ) false ) ;
706
-
707
- return dbCmd . Lookup < K , V > ( sql ) ;
748
+ return dbCmd . SetParameters ( anonType , false ) . Lookup < K , V > ( sql ) ;
708
749
}
709
750
710
751
internal static Dictionary < K , List < V > > LookupFmt < K , V > ( this IDbCommand dbCmd , string sql , params object [ ] sqlParams )
0 commit comments