ObjectChangeConflict.Resolve Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Löst Memberkonflikte.
Überlädt
Resolve() |
Löst Memberkonflikte durch Beibehalten aktueller Werte und Zurücksetzen der ursprünglichen Werte der Baseline zur Übereinstimmung mit den aktuelleren Datenbankwerten. |
Resolve(RefreshMode) |
Löst Memberkonflikte mit dem angegebenen RefreshMode. |
Resolve(RefreshMode, Boolean) |
Löst Memberkonflikte durch Beibehalten aktueller Werte und Zurücksetzen der ursprünglichen Werte der Baseline. |
Resolve()
Löst Memberkonflikte durch Beibehalten aktueller Werte und Zurücksetzen der ursprünglichen Werte der Baseline zur Übereinstimmung mit den aktuelleren Datenbankwerten.
public:
void Resolve();
public void Resolve ();
member this.Resolve : unit -> unit
Public Sub Resolve ()
Gilt für:
Resolve(RefreshMode)
Löst Memberkonflikte mit dem angegebenen RefreshMode.
public:
void Resolve(System::Data::Linq::RefreshMode refreshMode);
public void Resolve (System.Data.Linq.RefreshMode refreshMode);
member this.Resolve : System.Data.Linq.RefreshMode -> unit
Public Sub Resolve (refreshMode As RefreshMode)
Parameter
- refreshMode
- RefreshMode
Die entsprechende Option von RefreshMode.
Beispiele
Im folgenden Beispiel werden aktuelle Werte mit Werten aus der Datenbank überschrieben.
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);
}
}
Dim db As New Northwnd("...")
Try
db.SubmitChanges(ConflictMode.ContinueOnConflict)
Catch ex As ChangeConflictException
Console.WriteLine(ex.Message)
For Each occ As ObjectChangeConflict In db.ChangeConflicts
' All database values overwrite current values.
occ.Resolve(Data.Linq.RefreshMode.OverwriteCurrentValues)
Next
End Try
Das folgende Beispiel zeigt, wie Sie den ursprünglichen Wert durch die aus der Datenbank abgerufenen Werte austauschen. Die aktuellen Werte werden nicht geändert.
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);
}
}
Try
db.SubmitChanges(ConflictMode.ContinueOnConflict)
Catch ex As ChangeConflictException
Console.WriteLine(ex.Message)
For Each occ As ObjectChangeConflict In db.ChangeConflicts
' No database values are merged into current.
occ.Resolve(Data.Linq.RefreshMode.KeepCurrentValues)
Next
End Try
Im folgenden Beispiel werden die aktuellen Werte beibehalten, die geändert wurden, aber die anderen Werte werden mit Datenbankwerten aktualisiert.
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);
Try
db.SubmitChanges(ConflictMode.ContinueOnConflict)
Catch ex As ChangeConflictException
Console.WriteLine(ex.Message)
For Each occ As ObjectChangeConflict In db.ChangeConflicts
' Automerge database values into current for members
' that client has not modified.
occ.Resolve(Data.Linq.RefreshMode.KeepChanges)
Next
End Try
' Submit succeeds on second try.
db.SubmitChanges(ConflictMode.FailOnFirstConflict)
Hinweise
Die folgenden Beispiele zeigen, welche Ergebnisse mithilfe der verschiedenen Werte für RefreshModeerzeugt werden.
Gilt für:
Resolve(RefreshMode, Boolean)
Löst Memberkonflikte durch Beibehalten aktueller Werte und Zurücksetzen der ursprünglichen Werte der Baseline.
public:
void Resolve(System::Data::Linq::RefreshMode refreshMode, bool autoResolveDeletes);
public void Resolve (System.Data.Linq.RefreshMode refreshMode, bool autoResolveDeletes);
member this.Resolve : System.Data.Linq.RefreshMode * bool -> unit
Public Sub Resolve (refreshMode As RefreshMode, autoResolveDeletes As Boolean)
Parameter
- refreshMode
- RefreshMode
Die entsprechende Option von RefreshMode.
- autoResolveDeletes
- Boolean
true
, wenn Konflikte aufgrund von geänderten Objekten, die aus der Datenbank entfernt wurden, automatisch gelöst werden.