我有一个项目,其中多个用户可能同时查看同一页数据并对其进行更改。因此,丢失的更新问题将会发生。C#MVC仅使用Entity Framework保存视图模型的已更改元素
我想知道是否有任何框架或模式可以遵循,这将优雅地处理。所以如果有人只更改视图模型中的一个字段,我想只更新数据库中的这一列。
当前我发布视图模型回控制器,验证,然后自动映射到实体框架类。
作为一个适当的例子,比方说我的视图模型如下:
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人同时使用网站浏览此记录,他们的屏幕上分别有Num1和Num2分别为10和20。
人A将Num1设置为15并按下保存。
然后人B将Num2更改为25并按下保存。然而,由于整个视图模型被保存,所以人A的Num1 = 15的变化会丢失并被人B的记录覆盖10。
有没有人有任何web框架,他们可以推荐哪个计划很好地与MVC,这将避免这个问题?
你可以按照建议在这个环节 http://stackoverflow.com/questions/833/editing-database-records-by-multiple-users – 2014-10-03 18:52:39
没有任何的建议,解决问题了吗? – 2014-10-07 13:39:47
不是真的,但有一天晚上一些进一步的研究抛出了这个有趣的文章:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/handling-concurrency-with-the- entity-framework-in-an-asp-net-mvc-application – 2014-10-07 13:51:09