O Que é o Dapper?

Então, você descobriu o Dapper e está todo empolgado porque o StackExchange usa. "Que legal, tá no NuGet, é open source. Agora só falta cozinhar e fazer o café", né? Mas, falando sério, ele é um Extension Method que simplifica sua vida na hora de acessar dados.

O Dapper é como um mestre dos Micro ORMs e só perde em velocidade pro DataReader, que já está quase na aposentadoria.

Teste de performance do StackExchange Teste de performance do StackExchange

Quando você compara o Dapper com o SqlDataReader, talvez não veja diferença no gráfico e se pergunte "pra quê tanto barulho?" Enquanto isso, dava até para terminar seu projeto. Mas a facilidade de uso é o que realmente importa.

QueryMultiple

Quer mexer com o QueryMultiple? Ele é um extension method que você usa em qualquer IDbConnection para trabalhar com múltiplos Result Sets. Aqui, o buffered não é bem-vindo. O resultado vem em streaming. Se tem aquele cenário de 1 para N, esse é seu sonho.

Buffered vs Non-Buffered

Se decidir mexer com buffers: com buffered ativo, o resultado vem de uma vez. Se desligado, vem aos poucos. Por padrão, está com o Buffered ativo.

SHOW ME THE CODE

Pessoa usando fones de ouvido olhando janela com pôr do sol

Vamos ver exemplos, porque nada melhor que isso! Você verá dois exemplos para exercitar sua paciência.

Isso aí lê dois conjuntos de resultados conforme solicitado. Aqui, usamos o método Read.

No segundo exemplo, complicamos um pouco. Temos duas entradas de query e, para simplificar, usamos este Extension Method:

Ele ajuda a mapear resultados de 1 para N.

Veja um exemplo de uso abaixo:

Download

Clippy Octocat

Quer baixar a ferramenta? Visite meu GitHub e faça o download. Não tenha vergonha!

Referências

E se você conseguir terminar o projeto sem o Dapper? Bem, isso é sonho de quem ainda acredita que o DataReader vai levá-los de férias no Caribe. Boa sorte explorando esses mares...