首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UpdateModel()导致行不能更新

UpdateModel()导致行不能更新
EN

Stack Overflow用户
提问于 2010-03-10 04:08:55
回答 2查看 219关注 0票数 0

我在使用UpdateModel(theModelToUpdate)时遇到了导致并发问题的问题。

基本上,数据库中有一行包含该行所需的大多数信息,但不是所有信息。所需信息的其余部分为空。然后,用户(使用列表框)向该行添加信息,并创建新行(为列表框中的每一项发送一个ajax命令)。因此,由于用于获取项的循环,控制器的调用速度非常快)。

在我的控制器中,我首先检查用户将要更新的列是否为空。如果是,我使用UpdateModel来更新行。如果它们不为null (表示行已完成),则使用其余列表框项目创建新行。

在调试时,我注意到由于控制器的调用速度如此之快,所以不会像我计划的那样立即调用UpdateModel。由于这个原因,列表框中的一些项被跳过,并且我得到一个错误,指出该行不能被更新。

我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-10 04:49:43

我通过不使用UpdateModel更新行解决了这个问题。相反,我插入行,然后返回并删除缺少信息的行。可能不是最好的解决方案,但它解决了我的问题。

票数 0
EN

Stack Overflow用户

发布于 2010-03-10 04:24:54

不确定我是否理解正确:什么时候使用AJAX调用控制器?您说这发生得非常快,所以我假设您在提交时多次调用控制器,而不是每次用户实际添加一行时都调用。在“非常快”的情况下,我理解每秒多个操作。

好吧,这一次,我认为如果你只是在一行中添加一个条目,你就不应该使用UpdateModel -你可以手动完成这项工作。

其次,快速连续地调用同一项上的控制器可能确实会导致数据库上的并发问题,因为它必须在某个地方获取锁。然而,我认为这将取决于您的数据库抽象、数据库类型和您使用的锁定机制。

我建议你编写一个小的控制器操作,它只交互地添加一个条目,即每次用户实际做一些事情的时候。这应该可以避免并发问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2412195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档