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); //处理完冲突后,重试
  • 相关阅读:
    Web 开发基础之JavaScript
    WEB框架之-Django入门
    JQuery
    Web 开发基础之CSS
    Django simple_tag,filte,分页以及cookie和装饰器
    Django进阶之CSRF
    Django进阶之session
    继续Django
    VS Code快捷键
    前端:文件下载功能
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1852090.html
Copyright © 2011-2022 走看看