• 关于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文件后,数据库增加了两个可为空值的字段,手工增加实体对应属性时忽略了它们的可空性!于是更新的时候出现了上述异常!同时删除时报!

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

  • 相关阅读:
    ubuntu 安装 less
    Django orm增删改字段、建表 ,单表增删改查,Django请求生命周期
    python RabbitMQ队列使用
    80个Python练手项目列表
    celery异步任务体系笔记
    为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比
    吞吐量(TPS)、QPS、并发数、响应时间(RT)
    Supervisor使用详解
    supervisor 使 celery后台运行
    celery Django 简单示例
  • 原文地址:https://www.cnblogs.com/runner/p/2421272.html
Copyright © 2020-2023  润新知