我正在研究ASP.NET MVC应用程序,我正试图找出如何支持乐观并发。我现在正在处理的方法是让Web应用程序检索实体的实例(只是一个POCO),并从中构建一个ViewModel。 ViewModel将包含一个object UnderlyingEntity
属性,用于保存实体本身的实例。我可以将UnderlyingEntity
属性放在视图中的隐藏字段中,然后在提交视图时,将更改应用于UnderlyingEntity
,然后将其发送以进行更新。由于我已将原始实体实例保存在隐藏字段中,因此当我保存时,我将使用原始时间戳进行并发检查。
我试图克服的障碍是:
UnderlyingEntity
属性进行往返序列化/反序列化。我可以在视图中轻松地序列化它,但是如何在发布表单时将其恢复为原始类型?我想我需要一个ModelBinder或ValueProvider,但我不确定从哪里开始。答案 0 :(得分:1)
不。这不是如何处理EF中的并发性。
最佳做法是以下步骤:
DbUpdateConcurrencyException
,捕获该异常。在catch块中,你可以做你想做的事。