Je veux utiliser un micro-orm et j'ai décidé d'aller avec Dapper.
Mais je n'arrive pas à en trouver la moindre mention prenant en charge la nouvelle syntaxe async/wait. Les requêtes asynchrones sont importantes pour moi.
Quelqu'un peut-il fournir un exemple de code d'une requête asynchrone effectuée avec Dapper à l'aide du mot clé wait?
Dapper lors du ciblage de .NET 4.5 prend entièrement en charge l'utilisation de TPL, via les méthodes se terminant par * Async - QueryAsync etc. Plus précisément, la version .NET 4.5 inclut cet ensemble supplémentaire de méthodes
Voici un exemple 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;
}
}
}
Voici quelques exemples.
Exemples pour Dapper - Appels asynchrones
Cependant, ce n'est pas attendu:
var results = await Connection.QueryAsync<T>(sql).Result.ToArray();
Vous devez écrire quelque chose comme ceci:
var results = await Connection.QueryAsync<T>(sql);
return results.ToArray();