@@ -247,7 +247,7 @@ public virtual async Task SaveUseExpectedSqlTypeAsync()
247247 }
248248
249249 // 2 properties + revision
250- AssertSqlType ( driver , 3 ) ;
250+ AssertSqlType ( driver , 3 , true ) ;
251251 }
252252
253253 [ Test ]
@@ -266,7 +266,7 @@ public virtual async Task UpdateUseExpectedSqlTypeAsync()
266266 }
267267
268268 // 2 properties + revision x 2 (check + update)
269- AssertSqlType ( driver , 4 ) ;
269+ AssertSqlType ( driver , 4 , true ) ;
270270 }
271271
272272 [ Test ]
@@ -296,41 +296,65 @@ public virtual async Task QueryUseExpectedSqlTypeAsync()
296296 await ( t . CommitAsync ( ) ) ;
297297 }
298298
299- AssertSqlType ( driver , 5 ) ;
299+ AssertSqlType ( driver , 5 , false ) ;
300+
301+ using ( var s = OpenSession ( ) )
302+ using ( var t = s . BeginTransaction ( ) )
303+ {
304+ var q = s
305+ . CreateQuery (
306+ "from DateTimeClass d where d.Value = :value and " +
307+ "d.NullableValue = :nullableValue and " +
308+ "d.Revision = :revision and " +
309+ ":other1 = :other2" )
310+ . SetParameter ( "value" , Now , Type )
311+ . SetParameter ( "nullableValue" , Now , Type )
312+ . SetParameter ( "revision" , Now , Type )
313+ . SetParameter ( "other1" , Now , Type )
314+ . SetParameter ( "other2" , Now , Type ) ;
315+ driver . ClearStats ( ) ;
316+ await ( q . ListAsync < DateTimeClass > ( ) ) ;
317+ await ( t . CommitAsync ( ) ) ;
318+ }
319+
320+ AssertSqlType ( driver , 5 , true ) ;
300321 }
301322
302- private void AssertSqlType ( ClientDriverWithParamsStats driver , int expectedCount )
323+ private void AssertSqlType ( ClientDriverWithParamsStats driver , int expectedCount , bool exactType )
303324 {
304- if ( Type . SqlTypes ( Sfi ) . Any ( t => Equals ( t , SqlTypeFactory . DateTime2 ) ) )
325+ var typeSqlTypes = Type . SqlTypes ( Sfi ) ;
326+ if ( typeSqlTypes . Any ( t => t is DateTime2SqlType ) )
305327 {
328+ var expectedType = exactType ? typeSqlTypes . First ( t => t is DateTime2SqlType ) : SqlTypeFactory . DateTime2 ;
306329 Assert . That (
307330 driver . GetCount ( SqlTypeFactory . DateTime ) ,
308331 Is . EqualTo ( 0 ) ,
309332 "Found unexpected SqlTypeFactory.DateTime usages." ) ;
310333 Assert . That (
311- driver . GetCount ( SqlTypeFactory . DateTime2 ) ,
334+ driver . GetCount ( expectedType ) ,
312335 Is . EqualTo ( expectedCount ) ,
313336 "Unexpected SqlTypeFactory.DateTime2 usage count." ) ;
314337 Assert . That ( driver . GetCount ( DbType . DateTime ) , Is . EqualTo ( 0 ) , "Found unexpected DbType.DateTime usages." ) ;
315338 Assert . That (
316- driver . GetCount ( DbType . DateTime2 ) ,
339+ driver . GetCount ( expectedType ) ,
317340 Is . EqualTo ( expectedCount ) ,
318341 "Unexpected DbType.DateTime2 usage count." ) ;
319342 }
320- else if ( Type . SqlTypes ( Sfi ) . Any ( t => Equals ( t , SqlTypeFactory . DateTime ) ) )
343+ else if ( typeSqlTypes . Any ( t => t is DateTimeSqlType ) )
321344 {
345+ var expectedType = exactType ? typeSqlTypes . First ( t => t is DateTimeSqlType ) : SqlTypeFactory . DateTime ;
322346 Assert . That (
323347 driver . GetCount ( SqlTypeFactory . DateTime2 ) ,
324348 Is . EqualTo ( 0 ) ,
325349 "Found unexpected SqlTypeFactory.DateTime2 usages." ) ;
326350 Assert . That (
327- driver . GetCount ( SqlTypeFactory . DateTime ) ,
351+ driver . GetCount ( expectedType ) ,
328352 Is . EqualTo ( expectedCount ) ,
329353 "Unexpected SqlTypeFactory.DateTime usage count." ) ;
330354 Assert . That ( driver . GetCount ( DbType . DateTime2 ) , Is . EqualTo ( 0 ) , "Found unexpected DbType.DateTime2 usages." ) ;
331- Assert . That ( driver . GetCount ( DbType . DateTime ) , Is . EqualTo ( expectedCount ) , "Unexpected DbType.DateTime usage count." ) ;
355+ Assert . That ( driver . GetCount ( expectedType ) , Is . EqualTo ( expectedCount ) , "Unexpected DbType.DateTime usage count." ) ;
332356 }
333- else if ( Type . SqlTypes ( Sfi ) . Any ( t => Equals ( t , SqlTypeFactory . Date ) ) )
357+ else if ( typeSqlTypes . Any ( t => Equals ( t , SqlTypeFactory . Date ) ) )
334358 {
335359 Assert . That (
336360 driver . GetCount ( SqlTypeFactory . DateTime ) ,
@@ -343,6 +367,10 @@ private void AssertSqlType(ClientDriverWithParamsStats driver, int expectedCount
343367 Assert . That ( driver . GetCount ( DbType . DateTime ) , Is . EqualTo ( 0 ) , "Found unexpected DbType.DateTime usages." ) ;
344368 Assert . That ( driver . GetCount ( DbType . Date ) , Is . EqualTo ( expectedCount ) , "Unexpected DbType.Date usage count." ) ;
345369 }
370+ else
371+ {
372+ Assert . Ignore ( "Test does not involve tested types" ) ;
373+ }
346374 }
347375
348376 protected virtual long DateAccuracyInTicks => Dialect . TimestampResolutionInTicks ;
0 commit comments