Benchmarks.Belgrade.cs 1.8 KB
Newer Older
1
using BenchmarkDotNet.Attributes;
2
using Belgrade.SqlClient.SqlDb;
3
using Belgrade.SqlClient;
4
using System.ComponentModel;
A
Alexandr Buzadji 已提交
5
using System.Threading.Tasks;
6 7 8

namespace Dapper.Tests.Performance
{
9
    [Description("Belgrade")]
10 11 12 13
    public class BelgradeBenchmarks : BenchmarkBase
    {
        private QueryMapper _mapper;

N
Nick Craver 已提交
14
        [GlobalSetup]
15 16 17 18 19 20
        public void Setup()
        {
            BaseSetup();
            _mapper = new QueryMapper(ConnectionString);
        }

21 22
        [Benchmark(Description = "FirstOrDefault")]
        public Task<Post> FirstOrDefault()
23 24
        {
            Step();
25 26 27 28 29 30 31
            return _mapper.Sql("SELECT TOP 1 * FROM Posts WHERE Id = @Id").Param("Id", i).FirstOrDefault(
                reader => new Post
                    {
                        Id = reader.GetInt32(0),
                        Text = reader.GetString(1),
                        CreationDate = reader.GetDateTime(2),
                        LastChangeDate = reader.GetDateTime(3),
32

33 34 35 36 37 38 39 40 41 42
                        Counter1 = reader.IsDBNull(4) ? null : (int?)reader.GetInt32(4),
                        Counter2 = reader.IsDBNull(5) ? null : (int?)reader.GetInt32(5),
                        Counter3 = reader.IsDBNull(6) ? null : (int?)reader.GetInt32(6),
                        Counter4 = reader.IsDBNull(7) ? null : (int?)reader.GetInt32(7),
                        Counter5 = reader.IsDBNull(8) ? null : (int?)reader.GetInt32(8),
                        Counter6 = reader.IsDBNull(9) ? null : (int?)reader.GetInt32(9),
                        Counter7 = reader.IsDBNull(10) ? null : (int?)reader.GetInt32(10),
                        Counter8 = reader.IsDBNull(11) ? null : (int?)reader.GetInt32(11),
                        Counter9 = reader.IsDBNull(12) ? null : (int?)reader.GetInt32(12),
                    });
43 44
        }
    }
45
}