Async await 使用带有Dapper的异步等待关键字
我想使用micro orm,并决定使用Dapper 但似乎找不到任何关于它支持新的异步/等待语法的提及。异步查询对我来说很重要Async await 使用带有Dapper的异步等待关键字,async-await,.net-4.5,dapper,Async Await,.net 4.5,Dapper,我想使用micro orm,并决定使用Dapper 但似乎找不到任何关于它支持新的异步/等待语法的提及。异步查询对我来说很重要 有人能提供一个使用Dapper使用wait关键字进行异步查询的代码示例吗?Dapper在瞄准.NET 4.5时,通过以*async-QueryAsync等结尾的方法完全支持TPL的使用。具体地说,.NET 4.5构建包括一个示例Yaron public async Task<List<Artist>> GetAllAsync() {
有人能提供一个使用Dapper使用wait关键字进行异步查询的代码示例吗?Dapper在瞄准.NET 4.5时,通过以*async-QueryAsync等结尾的方法完全支持TPL的使用。具体地说,.NET 4.5构建包括一个示例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;
}
}
}
公共异步任务GetAllAsync()
{
使用(
SqlConnection连接=
新SqlConnection(Conn.String))
{
等待连接OpenAsync();
使用(var multi=await conn.QueryMultipleAsync(StoredProcs.Artists.GetAll,commandType:commandType.StoredProcedure))
{
var Artists=multi.Read((艺术家、专辑艺术家)=>
{
artist.albumArtist=albumArtist;
回归艺术家;
}).ToList();
var albums=multi.Read(
(专辑、专辑艺术家、专辑)=>
{
album.albumArtist=唱片集;
归还相册;
}).ToList();
康涅狄格州关闭();
回归艺术家;
}
}
}
以下是一些示例 然而,这是不可期待的:
var results = await Connection.QueryAsync<T>(sql).Result.ToArray();
var results=await Connection.querySync(sql.Result.ToArray();
你必须这样写:
var results = await Connection.QueryAsync<T>(sql);
return results.ToArray();
var results=wait Connection.querySync(sql);
返回结果。ToArray();
Great的可能副本,这是我一直在寻找的。您有哪里可以找到使用这些方法的代码示例吗?@Yaron它们基本上与非异步相同-只需在开始处添加wait
,在结束处添加async
。。。除非您需要取消令牌,否则在这种情况下,您需要使用不同的API,直到下一次构建时,是否需要wait conn.OopenAsync()?我以为它自动打开了连接