【发布时间】:2014-10-03 17:56:27
【问题描述】:
我有一个项目,其中多个用户可能同时查看同一页数据并对其进行更改。因此,会出现丢失更新的问题。
我想知道是否有任何框架或模式可以优雅地处理这个问题。因此,如果有人只更改视图模型中的一个字段,我只想更新数据库中的这一列。
目前我将视图模型发布回控制器,验证,然后自动映射到实体框架类。
作为一个恰当的例子,假设我的视图模型如下:
public class MyViewModel
{
public int Id { get; set; }
public int Num1 { get; set; }
public int Num2 { get; set; }
}
数据库中只有1行如下:
Id = 1
Num1 = 10
Num2 = 20
然后在加载页面时将其读入视图模型。
如果 A 人和 B 人同时使用网站浏览到这条记录,他们的屏幕上将分别显示 10 和 20 的 Num1 和 Num2。
A 人将 Num1 设置为 15,然后按保存。
然后人员 B 将 Num2 更改为 25 并按保存。但是,由于保存了整个视图模型,因此人员 A 对 Num1 = 15 的更改会丢失并被人员 B 的记录中的 10 覆盖。
有没有人可以推荐任何 Web 框架,可以很好地使用 MVC 来避免这个问题?
【问题讨论】:
-
您可以按照此链接中的建议stackoverflow.com/questions/833/…
-
这些建议是否解决了您的问题?
-
不是真的,但是有一天晚上一些进一步的研究提出了这篇有趣的文章:asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/…
标签: asp.net-mvc entity-framework asp.net-mvc-4 viewmodel asp.net-mvc-viewmodel