我正在使用实体框架开发一个 Web 应用程序。我加载一个对象列表并将其绑定到转发器以显示所有项目的摘要。用户可以点击转发器中每个项目的编辑图标或删除图标。
例子:
项目 1 | 编辑 | 删除
项目 2 | 编辑 | 删除
...
使用 rowversion 列进行并发时编辑工作正常,因为记录已加载并且 ID 和 rowversion 列的值保留在隐藏的表单字段中。这些“原始”值随后可在更新时使用。
但是,如果用户单击删除记录,我从数据库中加载对象,调用 DeleteObject(),然后调用 SaveChanges()。这样做的问题是,当我加载记录时,它会获取最新的 rowversion 值,因此任何并发检查都变得无用。
如何确保在删除记录时进行并发检查?