我承认这里可能没有掌握一些基本的知识,但是在下面的代码中,为什么我必须await
两次对同一查询进行两次?
我正在通过他的电子邮件地址查找一个人,这是一个数据库查找。我调用我的私有函数GetByEmailQueryAsync
,如果找到,它将从数据库返回记录。我使用await
此呼叫,因此我确定返回了结果(如果找到)。
为什么必须await
在函数调用中再次输入关键字GetByEmailQueryAsync
?然后在所有函数中再次调用GetByEmail
。我认为,此函数的调用者不必关心此函数是否执行某些异步任务。同样,我可能在这里缺少一些基本知识。
public async Task<Person> GetByEmail(string emailAddress)
{
return await GetByEmailQueryAsync(emailAddress);
}
private async Task<Person> GetByEmailQueryAsync(string emailAddress)
{
return await DbContext.Set<Person>.SingleOrDefaultAsync(x => x.EmailAddress == emailAddress);
}
这是我的意思的相当基本的示例,但我希望您能理解。
您不需要都等待。
由于您的GetByEmail
方法只是调用GetByEmailQueryAsync
,因此效果也很好:
public Task<Person> GetByEmail(string emailAddress)
{
return GetByEmailQueryAsync(emailAddress);
}
实际上,不使用await
两次就意味着只Task
需要一个,而不是两个。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句