1

我的 MVC 4 应用程序使用 Entity Framework 5 作为其 ORM。并且使用 Oracle 10 数据库作为其后端。MVC 视图显示来自 Oracle 数据库视图的数据,我无法控制数据库模式。视图是可更新的,并且还需要管理并发性。基础表/视图中没有时间戳类型的列。在这种情况下,我该如何管理并发?

对此的任何建议将不胜感激。

4

1 回答 1

2

对不起,迟到的答案,但我刚刚遇到了这个。由于您无权访问数据库,因此阻止 2 个用户请求对同一记录进行编辑并非易事(即使您这样做了,我也不确定在 Web 应用程序中是否存在防弹方法)。您可以做的是阻止用户编辑在检索到更改提交时间之间修改的对象。我将假设在您的 MVC 应用程序中,您使用视图模型来表示屏幕上的域模型对象。您可以在视图模型中包含一个附加字段作为哈希字段,该字段根据检索时对象的状态计算得出。发布编辑后,您需要再次从数据库中检索记录,将其当前哈希与 MVC 视图提交的哈希进行比较。

于 2013-07-03T06:08:09.300 回答