0 c# asynchronous async-await asp.net-web-api asp.net-core
是否建议等待“_teamRepository.AddTeamToDbAsync(teamToAdd)”方法?它只是为了保存到数据库,无需进一步验证等。如果我不等待保存操作,我会提供更快的结果,但是否存在一些我不知道的风险?
public async Task<OperationResult<TeamDto>> AddTeamAsync(TeamForCreationDto team)
{
var teamToAdd = _mapper.Map<Team>(team);
bool IsNameTaken = await CheckIfTeamExistsAsync(team.Name);
if (IsNameTaken)
{
return new OperationResult<TeamDto>
{
IsSuccess = false,
ErrorMessage = "Provided name is already taken.",
HttpResponseCode = 409
};
}
else
{
_teamRepository.AddTeamToDbAsync(teamToAdd); // HERE
var teamToReturn = _mapper.Map<TeamDto>(teamToAdd);
return new OperationResult<TeamDto>
{
IsSuccess = true,
Data = teamToReturn,
HttpResponseCode = 201
};
}
}
Run Code Online (Sandbox Code Playgroud)
让我知道你的想法以及我的理解是否正确
你应该await这样做。
如果不这样做,那么您的代码将在操作成功之前返回成功。一些验证(例如唯一和外键约束)会在保存过程中进行检查,直到保存完成后才能知道是否成功。
此外,正常模式是在控制器操作完成时处置数据库上下文;这可能会取消保存(返回成功响应后)。
最后,只要您的代码超出了请求的寿命,它就可能在主机关闭时(例如,在滚动升级期间)在没有警告的情况下被终止。
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |