zoukankan      html  css  js  c++  java
  • Linq to Sql : 并发冲突及处理策略

    1、 通过覆盖数据库值解决并发冲突

    try
    {
        db.SubmitChanges(ConflictMode.ContinueOnConflict); //需要指定为ConflictMode.ContinueOnConflict
    }
    catch (ChangeConflictException e)
    {
     
        foreach (ObjectChangeConflict occ in db.ChangeConflicts)
        {
            occ.Resolve(RefreshMode.KeepCurrentValues); //保留当前值,覆盖数据库中的值
        }
    }

    2 、通过保留数据库值解决并发冲突

    try
    {
        db.SubmitChanges(ConflictMode.ContinueOnConflict);
    }
    catch (ChangeConflictException e)
    {
        foreach (ObjectChangeConflict occ in db.ChangeConflicts)
        {
            occ.Resolve(RefreshMode.OverwriteCurrentValues);//以数据库中的值,重写当前值
        }
    }
    db.SubmitChanges(ConflictMode.FailOnFirstConflict); //处理完冲突后,重试

    3、通过与数据库值合并解决并发冲突

    try
    {
        db.SubmitChanges(ConflictMode.ContinueOnConflict);
    }
    catch (ChangeConflictException e)
    {
        foreach (ObjectChangeConflict occ in db.ChangeConflicts)
        {
            occ.Resolve(RefreshMode.KeepChanges);//保留数据库中的值和当前值,进行合并处理
         }
    }
    db.SubmitChanges(ConflictMode.FailOnFirstConflict); //处理完冲突后,重试
  • 相关阅读:
    Oracle修改字段类型
    JS解析JSON字符串
    C#Json转DataTable
    解决前台和后台传值出现中文乱码
    Oracle 存储过程简单语法
    EasyUI 冻结列
    EasyUI 数据网格行过滤
    windows计划任务
    C#日志文件
    bat 读取 ini 配置文件
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1852090.html
Copyright © 2011-2022 走看看