Подтвердить что ты не робот

Использование ключевых слов Async Await с Dapper

Я хочу использовать микроворчество и решил пойти с Даппером.

Но он не может найти никаких упоминаний об этом, поддерживая новый синтаксис async/wait. Асинхронные запросы важны для меня.

Может ли кто-нибудь предоставить пример кода асинхронного запроса, выполняемого с помощью Dapper, используя ключевое слово ожидания?

4b9b3361

Ответ 1

Dapper при таргетинге .NET 4.5 полностью поддерживает использование TPL, используя методы, заканчивающиеся на * Async - QueryAsync и т.д. В частности, сборка .NET 4.5 включает этот дополнительный набор методов

Ответ 2

Здесь образец Ярон

 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;
            }
        }
    }

Ответ 3

Вот несколько примеров.

Примеры для Dapper - асинхронных вызовов

Однако этого не стоит ожидать:

var results = await Connection.QueryAsync<T>(sql).Result.ToArray();

Вы должны написать что-то вроде этого:

var results = await Connection.QueryAsync<T>(sql);
return results.ToArray();