RefreshMode Enumeration
Defines how the Refresh method handles optimistic concurrency conflicts.
Assembly: System.Data.Linq (in System.Data.Linq.dll)
| Member name | Description | |
|---|---|---|
| KeepChanges | Forces the Refresh method to keep the current value that has been changed, but updates the other values with the database values. | |
| KeepCurrentValues | Forces the Refresh method to swap the original value with the values retrieved from the database. No current value is modified. | |
| OverwriteCurrentValues | Forces the Refresh method to override all the current values with the values from the database. |
The following example overwrites current values with values from the database.
Northwnd db = new Northwnd("..."); try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Console.WriteLine(e.Message); foreach (ObjectChangeConflict occ in db.ChangeConflicts) { // All database values overwrite current values. occ.Resolve(RefreshMode.OverwriteCurrentValues); } }
The following example shows how to swap the original value with the values retrieved from the database. No current value is modified.
try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Console.WriteLine(e.Message); foreach (ObjectChangeConflict occ in db.ChangeConflicts) { //No database values are merged into current. occ.Resolve(RefreshMode.KeepCurrentValues); } }
The following example keeps the current values that have been changed, but updates the other values with database values.
try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Console.WriteLine(e.Message); // Automerge database values for members that client // has not modified. foreach (ObjectChangeConflict occ in db.ChangeConflicts) { occ.Resolve(RefreshMode.KeepChanges); } } // Submit succeeds on second try. db.SubmitChanges(ConflictMode.FailOnFirstConflict);
Available since 3.5
Windows Phone Silverlight
Available since 7.1