我正在使用dapper,我有一些可以与select语句一起使用的代码,但是我试图将其转换为使用存储的proc,dapper的文档化在异步方法上有点稀疏。所以我在这里尽力而为。
public async Task<ActivityHeader> GetAllActivityHeader()
{
Task<ActivityHeader> _activityHeader= new List<ActivityHeader>();
using (IDbConnection conn = Connection)
{
if (conn.State == ConnectionState.Closed)
conn.Open();
_activityHeader = await conn.Query<ActivityHeader>("GetActivityHeader").ToList();
}
commandType: CommandType.StoredProcedure);
return _activityHeader.Result() ;
}
}
我如何使此方法对视图可兼容,并且还必须在视图端执行什么操作才能启用该功能?。
答案 0 :(得分:1)
精致的部分需要像这样
public async Task<ActivityHeader> GetAllActivityHeader(CancellationToken cancellationToken)
{
....
if (conn.State == ConnectionState.Closed)
await conn.OpenAsync(cancellationToken);
var activityHeaderTask = conn.QueryAsync<ActivityHeader>("GetActivityHeader", cancellationToken);
var result = await activityHeaderTask.AsList()
return result;
}
请注意,不包括使用部分。此外,需要conn.Open()
才能await conn.OpenAsync(cancellationToken)