今天在面试中,我遇到了一个毫无头绪的问题。作为ASP .Net MVC的新手,我别无选择,只能向专家询问。
“在您的MVC应用程序中,数据被存储到RDBMS系统中。在.cshtml页面中,有一个按钮可以将现有记录更新到DB中。
现在,假设来自Globe不同地区的两个用户正在同时尝试更新一条公共记录。但是,当第二个用户单击“提交”按钮时,您已经提交了更新。在这种情况下,第二个用户(按提交时)将无法提交。取而代之的是,该页面将使用更新的信息为第二位用户重新加载,并放弃更改。然后只有他才能继续进行更新“
您如何在ASP .Net MVC中实现呢?
我虽然也认为这可能是DB Side编码的结果,但是我不知道如何实现这一点。
您需要实施管理并发的策略。如何执行很大程度上取决于应用程序的业务规则以及两个或两个以上的人试图更改同一记录时发生的冲突类型。
大多数情况下,你会添加一个名为列RowVersion
,这将是一个timestamp
类型。每当您显示要更新的记录时,您也会选择当前RowVersion
值并将其通常存储在隐藏字段中。更新操作将包含该RowVersion
字段,该字段将获得一个新值,但是在提交更新操作之前,需要将RowVersion
您拥有的值与数据库中的当前值进行比较。如果它们不同,那么在您获取要更新的记录然后尝试对其进行更改的过程中,其他人已经更新了该行。您可以根据应用程序的业务规则来确定如何继续。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句