Freigeben über


ObjectChangeConflict.Resolve Methode

Definition

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.

Gilt für: