Dapper - .NET Core Tutorial - QueryMultiple

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.


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

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