[ConcurrencyCheck] 装饰是否不起作用?

Is [ConcurrencyCheck] decoration non-functional?

我正在尝试在核心项目中实施开放式并发检查。我显示要编辑的记录,在后端更改数据(Sql Server Management Studio),保存网页中的数据,但没有发生并发异常,尽管装饰在模型中的每个字段上(除了钥匙)。

我读了这篇文章:

https://entityframeworkcore.com/knowledge-base/47392764/ef-core-dbupdateconcurrencyexception-does-not-work-as-expected

这似乎可以解释修饰'[ConcurrencyCheck]' 什么都不做!如果我们使用 EF 上下文调用 .Update 和 .SaveChanges,它似乎建议在模型中构建重复的、未映射的字段(似乎并发比较发生在 .Update 检索用户从未见过的数据版本以进行比较时)。

本文:

https://docs.microsoft.com/en-us/ef/core/saving/concurrency

有一个使用 RawSQL 的例子。

现在,我可以使用 RowVersion。如果 [ConcurrencyCheck] 文档包含语句 "Only works with RawSql".

,我可能会先使用它

我读错了吗?

我看错了。我只是在没有等待的情况下自动使用 SaveChangeAsync 和 没想到更新完成前会return。我将其更改为 .SaveChanges 并捕获了异常。