MemberChangeConflict.Resolve Metod

Definition

Löser medlemskonflikter genom att behålla aktuella värden och återställa originalvärdena för baslinjen så att de matchar de nyare databasvärdena.

Överlagringar

Name Description
Resolve(RefreshMode)

Använder en RefreshMode parameter för att automatiskt ange det värde som ska anges som aktuellt värde för medlemmen i konflikt.

Resolve(Object)

Anger värdet som ska anges som aktuellt värde för medlemmen i konflikt.

Resolve(RefreshMode)

Använder en RefreshMode parameter för att automatiskt ange det värde som ska anges som aktuellt värde för medlemmen i konflikt.

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)

Parametrar

refreshMode
RefreshMode

Se även RefreshMode.

Exempel

I följande exempel skrivs aktuella värden över med värden från databasen.

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

I följande exempel visas hur du växlar det ursprungliga värdet med de värden som hämtats från databasen. Inget aktuellt värde ändras.

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

I följande exempel behålls de aktuella värden som har ändrats, men de andra värdena uppdateras med databasvärden.

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)

Kommentarer

I följande exempel visas vilka resultat som genereras med hjälp av de olika värdena för RefreshMode.

Gäller för

Resolve(Object)

Anger värdet som ska anges som aktuellt värde för medlemmen i konflikt.

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

Parametrar

value
Object

Värdet som ska anges som aktuellt värde.

Kommentarer

Värdet som anges här är det värde som ska användas i en efterföljande SubmitChanges åtgärd.

Gäller för