Compartir a través de


ObjectChangeConflict.Resolve Método

Definición

Resuelve los conflictos de miembros.

Sobrecargas

Resolve()

Resuelve los conflictos de miembros conservando los valores actuales y restableciendo los valores originales de la línea base para que coincidan con los valores más recientes de la base de datos.

Resolve(RefreshMode)

Resuelve los conflictos de miembros utilizando el RefreshMode especificado.

Resolve(RefreshMode, Boolean)

Resuelve los conflictos de miembros conservando los valores actuales y volviendo a establecer los valores originales de la línea base.

Resolve()

Resuelve los conflictos de miembros conservando los valores actuales y restableciendo los valores originales de la línea base para que coincidan con los valores más recientes de la base de datos.

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

Se aplica a

Resolve(RefreshMode)

Resuelve los conflictos de miembros utilizando el RefreshMode especificado.

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)

Parámetros

refreshMode
RefreshMode

Opción adecuada de RefreshMode.

Ejemplos

En el ejemplo siguiente se sobrescriben los valores actuales con valores de la base de datos.

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

En el ejemplo siguiente se muestra cómo intercambiar el valor original con los valores recuperados de la base de datos. No se modifica ningún valor actual.

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

En el ejemplo siguiente se mantienen los valores actuales que se han cambiado, pero se actualizan los demás valores con valores de base de datos.

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)

Comentarios

En los ejemplos siguientes se muestran los resultados que se generan mediante los distintos valores de RefreshMode.

Se aplica a

Resolve(RefreshMode, Boolean)

Resuelve los conflictos de miembros conservando los valores actuales y volviendo a establecer los valores originales de la línea base.

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)

Parámetros

refreshMode
RefreshMode

Opción adecuada de RefreshMode.

autoResolveDeletes
Boolean

Cuando es true, resuelve automáticamente los conflictos producidos por un objeto modificado que ya no está en la base de datos.

Se aplica a