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
Comments