更新时间:2022-10-03 15:11:19
1、 通过覆盖数据库值解决并发冲突
try { db.SubmitChanges(ConflictMode.ContinueOnConflict); //需要指定为ConflictMode.ContinueOnConflict } catch (ChangeConflictException e) { foreach (ObjectChangeConflict occ in db.ChangeConflicts) { occ.Resolve(); //保留当前值,覆盖数据库中的值 } }
2 、通过保留数据库值解决并发冲突
try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { foreach (ObjectChangeConflict occ in db.ChangeConflicts) { occ.Resolve(RefreshMode.OverwriteCurrentValues);//以数据库中的值,重写当前值 } } db.SubmitChanges(); //处理完冲突后,重试
3、通过与数据库值合并解决并发冲突
try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { foreach (ObjectChangeConflict occ in db.ChangeConflicts) { occ.Resolve(RefreshMode.KeepChanges);//保留数据库中的值和当前值,进行合并处理 } } db.SubmitChanges(); //处理完冲突后,重试