2
2
using Belgrade . SqlClient . SqlDb ;
3
3
using Belgrade . SqlClient ;
4
4
using System . ComponentModel ;
5
+ using System . Threading . Tasks ;
5
6
6
7
namespace Dapper . Tests . Performance
7
8
{
@@ -17,30 +18,28 @@ public void Setup()
17
18
_mapper = new QueryMapper ( ConnectionString ) ;
18
19
}
19
20
20
- [ Benchmark ( Description = "ExecuteReader " ) ]
21
- public Post ExecuteReader ( )
21
+ [ Benchmark ( Description = "FirstOrDefault " ) ]
22
+ public Task < Post > FirstOrDefault ( )
22
23
{
23
24
Step ( ) ;
24
- var post = new Post ( ) ;
25
- _mapper . Sql ( "SELECT TOP 1 * FROM Posts WHERE Id = @Id" ) . Param ( "Id" , i ) . Map (
26
- reader =>
27
- {
28
- post . Id = reader . GetInt32 ( 0 ) ;
29
- post . Text = reader . GetString ( 1 ) ;
30
- post . CreationDate = reader . GetDateTime ( 2 ) ;
31
- post . LastChangeDate = reader . GetDateTime ( 3 ) ;
25
+ return _mapper . Sql ( "SELECT TOP 1 * FROM Posts WHERE Id = @Id" ) . Param ( "Id" , i ) . FirstOrDefault (
26
+ reader => new Post
27
+ {
28
+ Id = reader . GetInt32 ( 0 ) ,
29
+ Text = reader . GetString ( 1 ) ,
30
+ CreationDate = reader . GetDateTime ( 2 ) ,
31
+ LastChangeDate = reader . GetDateTime ( 3 ) ,
32
32
33
- post . Counter1 = reader . IsDBNull ( 4 ) ? null : ( int ? ) reader . GetInt32 ( 4 ) ;
34
- post . Counter2 = reader . IsDBNull ( 5 ) ? null : ( int ? ) reader . GetInt32 ( 5 ) ;
35
- post . Counter3 = reader . IsDBNull ( 6 ) ? null : ( int ? ) reader . GetInt32 ( 6 ) ;
36
- post . Counter4 = reader . IsDBNull ( 7 ) ? null : ( int ? ) reader . GetInt32 ( 7 ) ;
37
- post . Counter5 = reader . IsDBNull ( 8 ) ? null : ( int ? ) reader . GetInt32 ( 8 ) ;
38
- post . Counter6 = reader . IsDBNull ( 9 ) ? null : ( int ? ) reader . GetInt32 ( 9 ) ;
39
- post . Counter7 = reader . IsDBNull ( 10 ) ? null : ( int ? ) reader . GetInt32 ( 10 ) ;
40
- post . Counter8 = reader . IsDBNull ( 11 ) ? null : ( int ? ) reader . GetInt32 ( 11 ) ;
41
- post . Counter9 = reader . IsDBNull ( 12 ) ? null : ( int ? ) reader . GetInt32 ( 12 ) ;
42
- } ) ;
43
- return post ;
33
+ Counter1 = reader . IsDBNull ( 4 ) ? null : ( int ? ) reader . GetInt32 ( 4 ) ,
34
+ Counter2 = reader . IsDBNull ( 5 ) ? null : ( int ? ) reader . GetInt32 ( 5 ) ,
35
+ Counter3 = reader . IsDBNull ( 6 ) ? null : ( int ? ) reader . GetInt32 ( 6 ) ,
36
+ Counter4 = reader . IsDBNull ( 7 ) ? null : ( int ? ) reader . GetInt32 ( 7 ) ,
37
+ Counter5 = reader . IsDBNull ( 8 ) ? null : ( int ? ) reader . GetInt32 ( 8 ) ,
38
+ Counter6 = reader . IsDBNull ( 9 ) ? null : ( int ? ) reader . GetInt32 ( 9 ) ,
39
+ Counter7 = reader . IsDBNull ( 10 ) ? null : ( int ? ) reader . GetInt32 ( 10 ) ,
40
+ Counter8 = reader . IsDBNull ( 11 ) ? null : ( int ? ) reader . GetInt32 ( 11 ) ,
41
+ Counter9 = reader . IsDBNull ( 12 ) ? null : ( int ? ) reader . GetInt32 ( 12 ) ,
42
+ } ) ;
44
43
}
45
44
}
46
45
}
0 commit comments