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