Freigeben über


MemberChangeConflict.Resolve Methode

Definition

Löst Memberkonflikte durch Beibehalten aktueller Werte und Zurücksetzen der ursprünglichen Werte der Baseline zur Übereinstimmung mit den aktuelleren Datenbankwerten.

Überlädt

Resolve(RefreshMode)

Gibt mit einem RefreshMode-Parameter automatisch den Wert an, der als aktueller Wert für den Member verwendet werden soll, der von einem Konflikt betroffen ist.

Resolve(Object)

Gibt den Wert an, der als aktueller Wert für den Member festgelegt werden soll, der von einem Konflikt betroffen ist.

Resolve(RefreshMode)

Gibt mit einem RefreshMode-Parameter automatisch den Wert an, der als aktueller Wert für den Member verwendet werden soll, der von einem Konflikt betroffen ist.

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

Siehe 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(Object)

Gibt den Wert an, der als aktueller Wert für den Member festgelegt werden soll, der von einem Konflikt betroffen ist.

public:
 void Resolve(System::Object ^ value);
public void Resolve (object value);
member this.Resolve : obj -> unit
Public Sub Resolve (value As Object)

Parameter

value
Object

Der Wert, der aktueller Wert festgelegt werden soll.

Hinweise

Der hier festgelegte Wert ist der Wert, der in einem nachfolgenden SubmitChanges Vorgang verwendet werden soll.

Gilt für: