繁体   English   中英

使用 EF Core 在 SQL Server 中处理乐观并发 - 更新子级时,如何更新父级?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM