@@ -667,6 +667,34 @@ public async Task TestSupportForDynamicParametersOutputExpressions_Query_Default
667667 Assert . Equal ( 42 , result ) ;
668668 }
669669
670+ [ Fact ]
671+ public async Task TestSupportForDynamicParametersOutputExpressions_QueryFirst ( )
672+ {
673+ var bob = new Person { Name = "bob" , PersonId = 1 , Address = new Address { PersonId = 2 } } ;
674+
675+ var p = new DynamicParameters ( bob ) ;
676+ p . Output ( bob , b => b . PersonId ) ;
677+ p . Output ( bob , b => b . Occupation ) ;
678+ p . Output ( bob , b => b . NumberOfLegs ) ;
679+ p . Output ( bob , b => b . Address ! . Name ) ;
680+ p . Output ( bob , b => b . Address ! . PersonId ) ;
681+
682+ var result = ( await connection . QueryFirstAsync < int > ( @"
683+ SET @Occupation = 'grillmaster'
684+ SET @PersonId = @PersonId + 1
685+ SET @NumberOfLegs = @NumberOfLegs - 1
686+ SET @AddressName = 'bobs burgers'
687+ SET @AddressPersonId = @PersonId
688+ select 42" , p ) . ConfigureAwait ( false ) ) ;
689+
690+ Assert . Equal ( "grillmaster" , bob . Occupation ) ;
691+ Assert . Equal ( 2 , bob . PersonId ) ;
692+ Assert . Equal ( 1 , bob . NumberOfLegs ) ;
693+ Assert . Equal ( "bobs burgers" , bob . Address . Name ) ;
694+ Assert . Equal ( 2 , bob . Address . PersonId ) ;
695+ Assert . Equal ( 42 , result ) ;
696+ }
697+
670698 [ Fact ]
671699 public async Task TestSupportForDynamicParametersOutputExpressions_Query_BufferedAsync ( )
672700 {
0 commit comments