Compartir a través de


MemberChangeConflict.Resolve Método

Definición

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.

Sobrecargas

Resolve(RefreshMode)

Utiliza un parámetro de RefreshMode para especificar automáticamente el valor que se va a establecer como valor actual del miembro en conflicto.

Resolve(Object)

Especifica el valor que se va a establecer como valor actual del miembro en conflicto.

Resolve(RefreshMode)

Utiliza un parámetro de RefreshMode para especificar automáticamente el valor que se va a establecer como valor actual del miembro en conflicto.

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

Vea 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 muestra qué resultados se generan mediante los distintos valores de RefreshMode.

Se aplica a

Resolve(Object)

Especifica el valor que se va a establecer como valor actual del miembro en conflicto.

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

Parámetros

value
Object

Valor que se va a establecer como valor actual.

Comentarios

El valor establecido aquí es el valor que se va a usar en una operación posterior SubmitChanges .

Se aplica a