ObjectChangeConflict.Resolve Methode

Definition

Löst Memberkonflikte auf.

Überlädt

Name Beschreibung
Resolve()

Behebt Memberkonflikte, indem aktuelle Werte beibehalten und die Basiswerte zurückgesetzt werden, damit sie den zuletzt verwendeten Datenbankwerten entsprechen.

Resolve(RefreshMode)

Löst Memberkonflikte mithilfe der angegebenen RefreshMode.

Resolve(RefreshMode, Boolean)

Lösen Sie Memberkonflikte, die aktuelle Werte beibehalten, und setzen Sie die ursprünglichen Basiswerte zurück.

Resolve()

Behebt Memberkonflikte, indem aktuelle Werte beibehalten und die Basiswerte zurückgesetzt werden, damit sie den zuletzt verwendeten Datenbankwerten entsprechen.

public:
 void Resolve();
public void Resolve();
member this.Resolve : unit -> unit
Public Sub Resolve ()

Gilt für:

Resolve(RefreshMode)

Löst Memberkonflikte mithilfe der 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 die aktuellen 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 Der ursprüngliche Wert mit den aus der Datenbank abgerufenen Werten ausgetauscht wird. Es wird kein aktueller Wert 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 RefreshModeerzeugt werden.

Gilt für:

Resolve(RefreshMode, Boolean)

Lösen Sie Memberkonflikte, die aktuelle Werte beibehalten, und setzen Sie die ursprünglichen Basiswerte zurück.

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

Wenn true, löst automatisch Konflikte, die sich aus einem geänderten Objekt ergeben, das sich nicht mehr in der Datenbank befindet.

Gilt für: