【发布时间】:2024-01-25 16:27:01
【问题描述】:
我正在关注这里的代码示例:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-6.0&tabs=visual-studio-code
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException) when (!TodoItemExists(id))
{
return NotFound();
}
在我的代码中,方法 TodoItemExists(在我的例子中方法名称是 UserExists)是异步的。
代码示例:
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException) when (!await UserExists(id))
{
return NotFound();
}
错误:无法在过滤器表达式中等待
正确的写法是什么?
【问题讨论】:
-
您必须像在旧版本中通常那样在 catch 块中应用条件。
-
为什么这个真正的问题会有反对票
-
不是投票者,但您可能有一个更大的问题 - 错误处理程序 用于具有 immediate 的 database failure 决策处理对数据库的依赖性是有问题的。如果数据库宕机了怎么办?
-
@MickyD - 我在这里探索微软给出的教程:docs.microsoft.com/en-us/aspnet/core/tutorials/…
标签: c# .net async-await .net-6.0