Linq to Sql : 并发冲突及处理策略

来源:互联网 发布:红楼梦里的王夫人 知乎 编辑:程序博客网 时间:2024/05/08 14:03

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); //处理完冲突后,重试
原创粉丝点击