不幸的是,我們的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,我更新了帖子 –