【发布时间】:2011-09-02 05:46:57
【问题描述】:
假设,我使用实体框架从数据库中检索了一个实体。有没有办法随后检查另一个用户在数据库中更改了相同的特定实体?
我以前(在 WinForm 应用程序中)使用的方法是:
- 将实体保存到数据库
- 向 Transactions 表添加条目,更改实体类型、唯一标识符和日期时间
- 刷新同一个实体时,检查事务表中当前用户保存后的行。
- 如果找到条目,请采取相应措施(从数据库重新加载实体、阻止编辑、保存冲突等,具体取决于我检查更改的原因)。
我想这样做的原因是:
- 避免重新加载整组实体,只需刷新已更改的实体
- 在保存时检查并发冲突
- 根据编辑开始的时间解决并发冲突。为此,我需要在用户开始编辑时在 Transactions 表中创建一个条目,并在用户保存/取消时更新同一 Transaction 表行。
这个方法看起来对吗?这样做的原因是否完全正确?也许已经有我无法找到的功能来做到这一点?
【问题讨论】:
标签: .net entity-framework concurrency