[英]Handle Optimistic Concurrency in SQL Server with EF Core - when updating child, how to update the parent?
我有两个实体,一个是paper
,另一个是paper line
。
我使用 SQL Server 来存储实体记录,每个实体由数据库中的一个表表示
PaperEntity
包含列
Id, Color, TimeStamp (RowVersion), etc...
PaperLineEntity
包含列
Id, PaperId(FK), lineContent, TimeStamp (RowVersion), etc...
我在想如何防止两个用户在同一篇论文中更新两个不同的行,我的想法是当你更新行时,你必须更新该行所属的论文记录的时间戳,关于如何可以的任何想法我在 EF Core 中管理它?
当获取 Paper 的行时,也获取 TimeStamp(RowVersion),当用户保存该行时,首先比较时间戳,如果不同,则返回错误,否则返回相同,然后允许更新它
您可以使用并发令牌。 想法与您描述的相同:您有一个特殊的属性,该属性随实体的每次更新一起更新。 您应该使用特殊属性或使用流畅的配置来标记此属性。 EF Core 将在每次更新期间自动比较old_value
(最初从 db 读取)和current_value
(当前出现在数据库中)。 如果它们不相等,则会抛出特殊异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.