Dapper é uma biblioteca do StackExchange, disponível no NuGet. Open source. Ela fornece Extension Methods que facilitam o acesso a dados.

É um Object Mapper para .NET e tem o titulo de Rei do Micro ORM (King of Micro ORM). É quase tão rápido quanto usar DataReader.

performancedapper
Teste de performance efetuado pelo StackExchange

Os testes de performance mostram que entre utilizar o Dapper e o SqlDataReader as diferenças são praticamente inexistentes, por outro lado os ganhos com design e praticidade são formidáveis.

QueryMultiple

O extension method QueryMultiple pode ser chamado de qualquer IDbConnection. Ele manipula multiplos Result Sets. O buffered está indisponivel, Isso significa que o resultado vem em streaming, o que o torna ideal para cenários 1:N e com grande volumes de dados.

Buffered vs Non-Buffered

Quando a opção buffered está ativa todo resultado da query é lido de uma única vez. Se estiver inativo o resultado é em formato streaming. O conteúdo é carregado conforme a aplicação solicita. Ótimo para
Por default o Buffered está ativo.

SHOW ME THE CODE

Man wearing headphones at desk with window view of sunset in background

Para esta demo, dois exemplos serão utilizados.

Esta query possui dois result sets, que são utilizados sob demanda. Conforme o fluxo da aplicação, os dados do result set será utilizado apenas quando solicitado. Através do método Read.

O segundo exemplo vai adicionar mais complexidade. A primeira query vai retornar 2 registros. Para facilitar o mapeamento dos dados o seguinte Extension Method será utilizado.

Esta Extension facilita o Mapping de objetos vindo do result set de 1 para N.

Veja a utilização abaixo

Download

O código do projeto está disponivel no meu GitHub

Referências