zoukankan      html  css  js  c++  java
  • 关于Linq to sql 应用时出现的一个‘row not found or changed’ 异常

    今天在一个小项目中应用”Linq to Sql“的时候出现了一个异常“row not found or changed“,但是明显有找到对应实体,并且也明显有修改过它的值,怎么会出现这异常呢,晕了,于是在网上找资料,一搜一大把,而头上几条结果惊人的雷同,于是,我就觉得吧,问题应该就是这样了,于是乎赶紧拿来主义,而出人意料的是,这些被N多人传诵解决方法碰壁了!

    解决方法源代码:foreach (System.Data.Linq.ObjectChangeConflict occ in dtx.ChangeConflicts)

                    {
                        //以下是解决冲突的三种方法,选一种即可

                        
    // 使用当前数据库中的值,覆盖Linq缓存中实体对象的值
                       
    // occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues);

                        
    // 使用Linq缓存中实体对象的值,覆盖当前数据库中的值
                        occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues);

                        // 只更新实体对象中改变的字段的值,其他的保留不变
                      
      occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges);

                    } 

    这一下子的三个解决方法,却解决不了我所遇到的一个小问题。 

    其实作为一个实体数据库映射的解决方法,实体数据与数据库字段对关系是基础,于是,我想到我生成.dbml文件后,数据库增加了两个可为空值的字段,手工增加实体对应属性时忽略了它们的可空性!于是更新的时候出现了上述异常!同时删除时报!

     也许是我所遇到异常的层次太浅,还不够格用到开场所说的解决办法!但是,新学新用新东西的,掌握原理,遇到问题的多一份思考,而不是盲目的去网上找资料!自我清晰的思路最为重要!

  • 相关阅读:
    sqlserver,获取调用存储过程返回数据的方法。
    手动为弹窗添加一个阴影背景。
    bootstrap资料链接
    进入Linux救援(rescue)模式的四大法门
    virtual box 5.2.12 扩展包安装
    pypi配置国内开源镜像
    vs2015利用python加载dll调试配置
    ubuntu18安装ubuntu kylin软件中心
    firefox快捷键窗口和标签类
    设置双网卡路由
  • 原文地址:https://www.cnblogs.com/runner/p/2421272.html
Copyright © 2011-2022 走看看