不幸的是,我们的DB可追溯到90年代。它的传统非常强大,我们仍然在使用SP来完成大部分CRUD操作。但是,看起来Dapper很适合,我们刚刚开始玩。使用Dapper QueryAsync返回单个对象
但是,我有点担心如何处理单个数据行。在这种情况下,我使用QueryAsync来调用传递ID的SP。如您所见,该对象正在返回异步调用(*)之外。
我会遇到麻烦吗?如果是这样,有谁知道如何处理它?我需要使用QuerySync吗?
public class SchemePolicyRepository : ISchemePolicyRepository
{
private readonly SqlConnection sql;
protected SchemePolicyRepository(SqlConnection connection)
{
sql = connection;
}
...
public async Task<SchemePolicy> GetById(string id)
{
var schemePolicy = await sql.QueryAsync<SchemePolicy>("risk.iE_GetSchemePolicyById",
new { Id = id },
commandType: CommandType.StoredProcedure);
return schemePolicy != null ? schemePolicy.FirstOrDefault() : null;
}
...
}
(*)由FirstOfDefault()返回的SchemePolicy对象不是异步方法。
*正如你所看到的,对象是没有退出异步调用。*这是什么意思?你的意思是你的查询不起作用? –
存储过程没有任何问题,它们就像重量较慢的ORM所产生的一样。 – Crowcoder
谢谢@YuvalItzchakov,我更新了帖子 –