using BenchmarkDotNet.Attributes; using Dapper.Contrib.Extensions; using System.ComponentModel; using System.Linq; namespace Dapper.Tests.Performance { [Description("Dapper")] public class DapperBenchmarks : BenchmarkBase { [GlobalSetup] public void Setup() { BaseSetup(); } [Benchmark(Description = "Query (buffered)")] public Post QueryBuffered() { Step(); return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: true).First(); } [Benchmark(Description = "Query (buffered)")] public dynamic QueryBufferedDynamic() { Step(); return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: true).First(); } [Benchmark(Description = "Query (unbuffered)")] public Post QueryUnbuffered() { Step(); return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: false).First(); } [Benchmark(Description = "Query (unbuffered)")] public dynamic QueryUnbufferedDynamic() { Step(); return _connection.Query("select * from Posts where Id = @Id", new { Id = i }, buffered: false).First(); } [Benchmark(Description = "QueryFirstOrDefault")] public Post QueryFirstOrDefault() { Step(); return _connection.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = i }); } [Benchmark(Description = "QueryFirstOrDefault")] public dynamic QueryFirstOrDefaultDynamic() { Step(); return _connection.QueryFirstOrDefault("select * from Posts where Id = @Id", new { Id = i }).First(); } [Benchmark(Description = "Contrib Get")] public Post ContribGet() { Step(); return _connection.Get(i); } } }