@@ -215,18 +215,20 @@ private static void SetFilter<T>(IDbCommand dbCmd, string name, object value)
215
215
216
216
public static void SetFilters < T > ( this IDbCommand dbCmd , object anonType , bool excludeNulls )
217
217
{
218
- SetParameters ( dbCmd , anonType , excludeNulls ) ;
218
+ SetParameters < T > ( dbCmd , anonType , excludeNulls ) ;
219
219
220
220
dbCmd . CommandText = GetFilterSql < T > ( dbCmd ) ;
221
221
}
222
222
223
- private static void SetParameters ( this IDbCommand dbCmd , object anonType , bool excludeNulls )
223
+ private static void SetParameters < T > ( this IDbCommand dbCmd , object anonType , bool excludeNulls )
224
224
{
225
225
dbCmd . Parameters . Clear ( ) ;
226
226
lastQueryType = null ;
227
227
if ( anonType == null ) return ;
228
228
229
- var pis = anonType . GetType ( ) . GetSerializableProperties ( ) ;
229
+ var pis = anonType . GetType ( ) . GetSerializableProperties ( ) ;
230
+ ModelDefinition model = ModelDefinition < T > . Definition ;
231
+
230
232
foreach ( var pi in pis )
231
233
{
232
234
var mi = pi . GetGetMethod ( ) ;
@@ -235,8 +237,15 @@ private static void SetParameters(this IDbCommand dbCmd, object anonType, bool e
235
237
var value = mi . Invoke ( anonType , new object [ 0 ] ) ;
236
238
if ( excludeNulls && value == null ) continue ;
237
239
240
+
238
241
var p = dbCmd . CreateParameter ( ) ;
239
- p . ParameterName = pi . Name ;
242
+
243
+ FieldDefinition targetField = model . FieldDefinitions . FirstOrDefault ( f => string . Equals ( f . Name , pi . Name ) ) ;
244
+ if ( targetField != null && ! string . IsNullOrEmpty ( targetField . Alias ) )
245
+ p . ParameterName = targetField . Alias ;
246
+ else
247
+ p . ParameterName = pi . Name ;
248
+
240
249
p . DbType = OrmLiteConfig . DialectProvider . GetColumnDbType ( pi . PropertyType ) ;
241
250
p . Direction = ParameterDirection . Input ;
242
251
p . Value = value ;
@@ -328,7 +337,7 @@ internal static T QuerySingle<T>(this IDbCommand dbCmd, string sql, object anonT
328
337
{
329
338
if ( IsScalar < T > ( ) ) return QueryScalar < T > ( dbCmd , sql , anonType ) ;
330
339
331
- dbCmd . SetParameters ( anonType , true ) ;
340
+ dbCmd . SetParameters < T > ( anonType , true ) ;
332
341
dbCmd . CommandText = OrmLiteConfig . DialectProvider . ToSelectStatement ( typeof ( T ) , sql ) ;
333
342
334
343
using ( var dbReader = dbCmd . ExecuteReader ( ) )
@@ -359,7 +368,7 @@ internal static List<T> Where<T>(this IDbCommand dbCmd, object anonType)
359
368
360
369
internal static List < T > Query < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
361
370
{
362
- if ( anonType != null ) dbCmd . SetParameters ( anonType , true ) ;
371
+ if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , true ) ;
363
372
dbCmd . CommandText = OrmLiteConfig . DialectProvider . ToSelectStatement ( typeof ( T ) , sql ) ;
364
373
365
374
using ( var dbReader = dbCmd . ExecuteReader ( ) )
@@ -389,7 +398,7 @@ internal static T QueryScalar<T>(this IDbCommand dbCmd, object anonType)
389
398
390
399
internal static T QueryScalar < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
391
400
{
392
- if ( anonType != null ) dbCmd . SetParameters ( anonType , true ) ;
401
+ if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , true ) ;
393
402
dbCmd . CommandText = OrmLiteConfig . DialectProvider . ToSelectStatement ( typeof ( T ) , sql ) ;
394
403
395
404
using ( var dbReader = dbCmd . ExecuteReader ( ) )
@@ -398,7 +407,7 @@ internal static T QueryScalar<T>(this IDbCommand dbCmd, string sql, object anonT
398
407
399
408
internal static List < T > SqlList < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
400
409
{
401
- if ( anonType != null ) dbCmd . SetParameters ( anonType , true ) ;
410
+ if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , true ) ;
402
411
dbCmd . CommandText = sql ;
403
412
404
413
using ( var dbReader = dbCmd . ExecuteReader ( ) )
@@ -420,7 +429,7 @@ internal static List<T> SqlList<T>(this IDbCommand dbCmd, string sql, Dictionary
420
429
421
430
internal static T SqlScalar < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
422
431
{
423
- if ( anonType != null ) dbCmd . SetParameters ( anonType , true ) ;
432
+ if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , true ) ;
424
433
dbCmd . CommandText = sql ;
425
434
426
435
using ( var dbReader = dbCmd . ExecuteReader ( ) )
@@ -446,7 +455,7 @@ internal static List<T> ByExampleWhere<T>(this IDbCommand dbCmd, object anonType
446
455
447
456
internal static List < T > QueryByExample < T > ( this IDbCommand dbCmd , string sql , object anonType = null )
448
457
{
449
- if ( anonType != null ) dbCmd . SetParameters ( anonType , true ) ;
458
+ if ( anonType != null ) dbCmd . SetParameters < T > ( anonType , true ) ;
450
459
dbCmd . CommandText = OrmLiteConfig . DialectProvider . ToSelectStatement ( typeof ( T ) , sql ) ;
451
460
452
461
using ( var dbReader = dbCmd . ExecuteReader ( ) )
0 commit comments