@@ -667,6 +667,34 @@ public async Task TestSupportForDynamicParametersOutputExpressions_Query_Default
667
667
Assert . Equal ( 42 , result ) ;
668
668
}
669
669
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
+
670
698
[ Fact ]
671
699
public async Task TestSupportForDynamicParametersOutputExpressions_Query_BufferedAsync ( )
672
700
{
0 commit comments