博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC解决更新冲突问题
阅读量:6399 次
发布时间:2019-06-23

本文共 824 字,大约阅读时间需要 2 分钟。

首先,我们应该把数据提交方法做到一个数据库基类里,就像这样

 public abstract class dbBase

    {

  public virtual void SubmitChanges()

        {
            ChangeSet cSet = db.GetChangeSet();
            if (cSet.Inserts.Count > 0
                || cSet.Updates.Count > 0
                || cSet.Deletes.Count > 0)
            {
                try
                {
                    db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
                    //db.SubmitChanges();
                }
                catch (System.Data.Linq.ChangeConflictException ex)
                {
                    foreach (System.Data.Linq.ObjectChangeConflict occ in db.ChangeConflicts)
                    {
                        // 使用当前数据库中的值,覆盖Linq缓存中实体对象的值  
                        occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues);
                        // 使用Linq缓存中实体对象的值,覆盖当前数据库中的值  
                        occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues);
                        // 只更新实体对象中改变的字段的值,其他的保留不变  
                        occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges);
                    }
                    db.SubmitChanges();
                }
             }
        }

}

所有数据操作对象,都继承它,使用它的SubmitChanges方法就可以了,呵呵

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
JVM内存溢出环境备份方法
查看>>
360se打开慢,lsass 过高 , cpu温度上升
查看>>
jmeter 插件下载下载方法
查看>>
BZOJ1004: [HNOI2008]Cards(Burnside引理 背包dp)
查看>>
企业建立私有云的N个理由
查看>>
python 验证码识别示例(一) 某个网站验证码识别
查看>>
关于加密(转载文章)
查看>>
浅谈tcp socket的backlog参数
查看>>
js对数值型数组排序错误
查看>>
MVC ---- 怎删改查
查看>>
怎样更聪明的工作
查看>>
【.NET 深呼吸】.net core 中的轻量级 Composition
查看>>
electron-vue 用 electron-packager 打包的问题备忘
查看>>
无人驾驶入门(基本流程)
查看>>
CentOS安装Tomcat
查看>>
[转]innodb的锁时间
查看>>
deeplearning4j——卷积神经网络对验证码进行识别
查看>>
C#获取一个实体类的属性名称、属性值
查看>>
[转]创建一个JavaScript弹出DIV窗口层的效果
查看>>
Hash表
查看>>