Compartir a través de


RecordConstraintConflictForItem Método (SyncId, ConstraintConflictReason)

Notifica que se produjo un conflicto de restricción cuando el proveedor de destino intentó aplicar el cambio a la réplica de destino, y especifica el identificador de elemento del elemento de destino que está en conflicto.

Espacio de nombres:  Microsoft.Synchronization
Ensamblado:  Microsoft.Synchronization (en Microsoft.Synchronization.dll)

Sintaxis

'Declaración
Public Sub RecordConstraintConflictForItem ( _
    conflictingItemId As SyncId, _
    reason As ConstraintConflictReason _
)
'Uso
Dim instance As SaveChangeContext
Dim conflictingItemId As SyncId
Dim reason As ConstraintConflictReason

instance.RecordConstraintConflictForItem(conflictingItemId, _
    reason)
public void RecordConstraintConflictForItem(
    SyncId conflictingItemId,
    ConstraintConflictReason reason
)
public:
void RecordConstraintConflictForItem(
    SyncId^ conflictingItemId, 
    ConstraintConflictReason reason
)
member RecordConstraintConflictForItem : 
        conflictingItemId:SyncId * 
        reason:ConstraintConflictReason -> unit 
public function RecordConstraintConflictForItem(
    conflictingItemId : SyncId, 
    reason : ConstraintConflictReason
)

Parámetros

Excepciones

Excepción Condición
ArgumentNullException

conflictingItemId es un valor null Nothing nullptr unit es una referencia NULL (Nothing en Visual Basic). .

SyncInvalidOperationException

Un conflicto de restricción o error recuperable ya se ha establecido en este objeto.

Ejemplos

En el ejemplo siguiente se comprueba si se puede crear un nuevo elemento en el almacén de elementos. Si no se puede crear el elemento, se registra un conflicto de restricción. El ejemplo de código se toma de una implementación de SaveChangeWithChangeUnits.

Case SaveChangeAction.Create
    If True Then
        ' Create a new item. Report a constraint conflict if one occurs.
        Try
            Dim constraintReason As ConstraintConflictReason
            Dim conflictingItemId As SyncId = Nothing
            ' Check if the item can be created or if it causes a constraint conflict.
            If _ContactStore.CanCreateContact(change, DirectCast(context.ChangeData, String()), constraintReason, conflictingItemId) Then
                ' No conflict, so create the item.
                _ContactStore.CreateContactFromSync(change, DirectCast(context.ChangeData, String()))
            Else
                ' A constraint conflict occurred, so report this to the change applier.
                context.RecordConstraintConflictForItem(conflictingItemId, constraintReason)
            End If
        Catch ex As Exception
            ' Some other error occurred, so exclude this item for the rest of the session.
            Dim errData As New RecoverableErrorData(ex)
            context.RecordRecoverableErrorForItem(errData)
        End Try
        Exit Select
    End If
case SaveChangeAction.Create:
{
    // Create a new item. Report a constraint conflict if one occurs.
    try
    {
        ConstraintConflictReason constraintReason;
        SyncId conflictingItemId;
        // Check if the item can be created or if it causes a constraint conflict.
        if (_ContactStore.CanCreateContact(change, (string[])context.ChangeData, out constraintReason, out conflictingItemId))
        {
            // No conflict, so create the item.
            _ContactStore.CreateContactFromSync(change, (string[])context.ChangeData);
        }
        else
        {
            // A constraint conflict occurred, so report this to the change applier.
            context.RecordConstraintConflictForItem(conflictingItemId, constraintReason);
        }
    }
    catch (Exception ex)
    {
        // Some other error occurred, so exclude this item for the rest of the session.
        RecoverableErrorData errData = new RecoverableErrorData(ex);
        context.RecordRecoverableErrorForItem(errData);
    }
    break;
}

Vea también

Referencia

SaveChangeContext Clase

SaveChangeContext Miembros

RecordConstraintConflictForItem Sobrecarga

Microsoft.Synchronization Espacio de nombres