Add optimistic concurrency (RowVersion) to user-editable entities
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
从 LearnStack.Core/Data/Models/LearningResource.cs 和 LearnStack.Core/Services/LearningResourceService.cs:105-130 开始,然后跟踪服务在第 157-176 行的批量重新排序路径。找出对应的 ContentIdea 模型和服务,并验证 DbUpdateConcurrencyException 如何到达面向用户的流程。当并发编辑显示冲突消息,且过期的客户端重新排序不再静默丢失更改时,即视为完成。
由索引模型根据 Issue 内容生成。
描述
Tier 2 — correctness
Problem
No entity carries a concurrency token, and the update services copy every field from the incoming object onto the tracked entity. Two browser tabs — very common in a Blazor Server app, and the resource list is also edited from dialogs — silently overwrite each other, last write wins. Drag-and-drop reordering makes this worse because it rewrites CustomOrder across many rows at once.
Evidence
LearnStack.Core/Data/Models/LearningResource.cs— noRowVersionLearnStack.Core/Services/LearningResourceService.cs:105-130— wholesale field copyLearnStack.Core/Services/LearningResourceService.cs:157-176— bulkCustomOrderrewrite
Proposed fix
- Add
[Timestamp] public byte[]? RowVersion { get; set; }toLearningResourceandContentIdea. - Handle
DbUpdateConcurrencyExceptionin the services and surface a "this item changed elsewhere" message instead of silently overwriting.
Acceptance criteria
- Concurrent edits produce a conflict message rather than silent data loss
- Reordering is resilient to a stale client-side list
- 主要语言
- HTML
- 星标
- 10
- 派生
- 0
- 平均合并
- 2 小时 35 分钟
- 30 天内合并 PR
- 21
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
kasuken/LearnStack 的其他 Issue
-
enhancement
难度 1/5 1 小时以内 新手友好度 91/100
kasuken/LearnStack#59 ·
维护者通常 1 天内回复
-
enhancement
难度 5/5 一周以上 新手友好度 35/100
kasuken/LearnStack#72 ·
维护者通常 1 天内回复
-
enhancement
难度 5/5 一周以上 新手友好度 30/100
kasuken/LearnStack#71 ·
维护者通常 1 天内回复
-
enhancement
难度 5/5 一周以上 新手友好度 35/100
kasuken/LearnStack#70 ·
维护者通常 1 天内回复
-
enhancement
难度 5/5 一周以上 新手友好度 45/100
kasuken/LearnStack#69 ·
维护者通常 1 天内回复
查看 kasuken/LearnStack 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
UKGovernmentBEIS/inspect_ai#5781 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
TencentCloud/Octop#1832 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
LanternOps/breeze#8254 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复