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); //处理完冲突后,重试
  • 相关阅读:
    iOS开发 日常错误积累
    Linux编程---I/O部分
    Binder机制1---Binder原理介绍
    hdu4405概率dp入门
    SSL连接建立过程分析(1)
    用GDB调试程序(一)
    RBAC权限管理
    HDU3930(离散对数与原根)
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 产生数
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1852090.html
Copyright © 2011-2022 走看看