zoukankan      html  css  js  c++  java
  • EF 更新数据出现 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: 异常

    EF6更新 数据出现 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: Store update, insert, or delete statement affected an unexpected number of rows (0)....异常

    先还原一下问题出现的场景;

    首先,获取 数据倒view显示,并绑定到文本框显示,点击提交时候,出现上面异常信息;

    数据更新错误,通常包含以下几种:

    1,DbEntityValidationException

    2,DbUpdateConcurrencyException(以上错误将被该异常捕获)

    情况一:往往是数据格式不正确,比如,int32类型不可为空,却绑定null值,等等

    情况二:也是本次要重点说的情况,可能情况有以下几种

        1,数据并发情况下,多人客户端对同一条数据同时操作,如果是先delete,再update,那么,一定是会出现以上错误,反之,如果是先update再delete,完全不成问题,详见。。。。走马观花的博客 搜索标题中的异常信息。

        2,就是本次要说的,也是本人遇到的问题,对于模型中,创建了并发标识字段,timestamp,此时,进行数据编辑的时候,

    一定要注意,页面上一定要带上该字段值。否则必然出现以上错误,原因很简单,如果不带上这个标识,此时,更新数据 上下文中会检索并发标识,此时找不到相应实体信息的并发标识,可以理解……可以说提升到了并发的高度了吧,找不到同条数据,问题便会出现。

    那么解决方法就有了,view中添加标识的隐藏字段即可,在编辑的时候将原数据的标识绑定上,后台提交数据时,重新赋值到实体。即可提交成功。

      

  • 相关阅读:
    (转)C# BackgroundWorker组件的原理分析
    (转)App.Config详解及读写操作
    (转)C# 控制蜂鸣器发声
    存储过程小例子
    DB通用类:MySQL通用类
    poj 1936 All in All
    Bone Collector 01背包问题
    sdut1359 求最大和子矩阵
    求最大值
    后缀式求值
  • 原文地址:https://www.cnblogs.com/Tmc-Blog/p/4954153.html
Copyright © 2011-2022 走看看