我的代码如下所示:
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();
}
我认为 db.SaveChangesAsync 之前的一切都可以,但是在执行 return Ok() 之前如何确认 db.SaveChangesAsync 是否有效?理想情况下,我认为我应该检查异常和其他事情,但我不确定如何将其放入此代码块中。
来自msdn:
public virtual Task<int> SaveChangesAsync()
返回值 类型:System.Threading.Tasks.Task 一个任务
代表异步保存操作。任务结果包含
写入底层数据库的对象数量。
检查结果是否大于0:
if(await db.SaveChangesAsync() > 0)
{
.....
}
更多信息请点击这里
另一种选择是将其包装为try ... catch
block:
try
{
await db.SaveChangesAsync();
return Ok();
}
catch (Exception ex)
{
return NotFound(ex.Message);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)