zoukankan      html  css  js  c++  java
  • Row not found or changed. Linq 找不到行或行已更改

    在使用Linq的时候经常出现在了这样的一个错误
    Row not found or changed. 找不到行或行已更改
    解决方案。

    如果不是重要的数据。不需要去理会并发重突。

    一个简单的方案就是
    打开dbml (linq)文件把实体类中的 属性 "Update check" 改为 Never.
    主键(ID)就不要改了。

    第二种方法. 不着征对一些记数情况的更新. 请直接用sql 语句,而不需要去取出整个数据然后再更新.这样就可能存在冲突了.

    dC.ExecuteCommand("UPDATE [dbo].[MyTable] SET num=num+1 WHERE ID = @p0", m.ID);

    第三种方法.

    try
    {
        dc.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
    }
    catch (System.Data.Linq.ChangeConflictException ex)
    {

         DC.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);  //保持当前的值

         DC.ChangeConflicts.ResolveAll( RefreshMode.OverwriteCurrentValues);//保持原来的更新,放弃了当前的值.
         DC.ChangeConflicts.ResolveAll(RefreshMode.KeepChanges);//保存原来的值 有冲突的话保存当前版本


        // 注意:解决完冲突后还得 SubmitChanges() 一次,不然一样是没有更新到数据库的

        db.SubmitChanges();
    }

     


    solution:
    Open dbml (linq) file ,and find your entity  change the propery(field) "update check " to Never

  • 相关阅读:
    SSAS 内部错误:操作未能成功
    无法从项目中获取SSIS包的列表
    新特技软件(Analyzer)添加新用户
    cmd命令搜集
    面试中--js注意事项(小知识点)
    面试的一般需求
    函数----let和const
    函数----箭头函数
    vuex的相关知识
    js中,数组去重的方法的总结(温故而知新)
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/1095425.html
Copyright © 2011-2022 走看看