Usando Async aguarda palabras clave con Dapper

.net-4.5 async-await dapper

Pregunta

Quiero usar un microorma y decidí ir con Dapper.

Pero parece que no puede encontrar ninguna mención de que sea compatible con la nueva sintaxis async / await. Las consultas asincrónicas son importantes para mí.

¿Puede alguien proporcionar un ejemplo de código de una consulta asíncrona realizada con Dapper utilizando la palabra clave await?

Respuesta aceptada

Dapper cuando se orienta a .NET 4.5 tiene soporte completo para el uso de TPL, a través de los métodos que terminan en * Async - QueryAsync, etc. Específicamente, la compilación de .NET 4.5 incluye este conjunto adicional de métodos


Respuesta popular

Aquí hay una muestra de Yaron

 public async Task<List<Artist>> GetAllAsync()
    {
        using (
            SqlConnection conn =
                new SqlConnection(Conn.String))
        {
            await conn.OpenAsync();

            using (var multi = await conn.QueryMultipleAsync(StoredProcs.Artists.GetAll, commandType: CommandType.StoredProcedure))
            {
                var Artists = multi.Read<Artist, AlbumArtist, Artist>((artist, albumArtist) =>
                {
                    artist.albumArtist = albumArtist;
                    return artist;
                }).ToList();

                var albums = multi.Read<Album, AlbumArtist, Album>(
                (album, albumArtist, album) =>
                {
                    album.albumArtist = album;
                    return albums;
                }).ToList();


                conn.Close();

                return Artists;
            }
        }
    }


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué