Skip to content

Commit b452fb1

Browse files
authored
Merge pull request #1603 from Zubaloo/main
The used Map method is asynchronous, hence without waiting for operation to complete the benchmark is only counting the query invocation time.
2 parents ab7724b + f499062 commit b452fb1

File tree

1 file changed

+20
-21
lines changed

1 file changed

+20
-21
lines changed

benchmarks/Dapper.Tests.Performance/Benchmarks.Belgrade.cs

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Belgrade.SqlClient.SqlDb;
33
using Belgrade.SqlClient;
44
using System.ComponentModel;
5+
using System.Threading.Tasks;
56

67
namespace Dapper.Tests.Performance
78
{
@@ -17,30 +18,28 @@ public void Setup()
1718
_mapper = new QueryMapper(ConnectionString);
1819
}
1920

20-
[Benchmark(Description = "ExecuteReader")]
21-
public Post ExecuteReader()
21+
[Benchmark(Description = "FirstOrDefault")]
22+
public Task<Post> FirstOrDefault()
2223
{
2324
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),
3232

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+
});
4443
}
4544
}
4645
}

0 commit comments

Comments
 (0)