Ala*_*an2 5 asp.net asynchronous asp.net-web-api2
我的代码如下所示:
public async Task<IHttpActionResult> Delete(int id)
{
var userId = Int32.Parse(User.Identity.GetUserId());
UserTest userTest = await db.UserTests.FindAsync(id);
if (userTest == null)
{
return NotFound();
}
if (userTest.UserId != userId)
{
return Unauthorized();
}
db.UserTests.Remove(userTest);
await db.SaveChangesAsync();
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
我认为直到db.SaveChangesAsync的所有内容都还可以,但是如何在执行返回Ok()之前确认db.SaveChangesAsync是否正常工作?理想情况下,我认为我应该检查异常和事物,但不确定如何将其放入此代码块中。
来自msdn:
public virtual Task<int> SaveChangesAsync()
Run Code Online (Sandbox Code Playgroud)
返回值类型:System.Threading.Tasks.Task代表异步保存操作的任务。任务结果包含写入基础数据库的对象数。
检查结果是否大于0:
if(await db.SaveChangesAsync() > 0)
{
.....
}
Run Code Online (Sandbox Code Playgroud)
另一个选择是用try ... catchblock 包裹它:
try
{
await db.SaveChangesAsync();
return Ok();
}
catch (Exception ex)
{
return NotFound(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9248 次 |
| 最近记录: |