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); //处理完冲突后,重试
  • 相关阅读:
    ntopng网络流量实时监控
    LVS初始使用步骤
    Pycharm快捷方式
    Python之路,Day9, 进程、线程、协程篇
    Python之路,Day7
    Python 之路 Day5
    Python之路,Day6
    Python之路,Day3
    Python之路,Day2
    Python之路,Day1
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1852090.html
Copyright © 2011-2022 走看看