Поделиться через


Метод RecordConstraintConflictForItem (SyncId, ConstraintConflictReason)

Сообщает, что возник конфликт ограничения при попытке применения изменений поставщиком назначения на реплике назначения, и указывает идентификатор элемента назначения, вызвавшего конфликт.

Пространство имен:  Microsoft.Synchronization
Сборка:  Microsoft.Synchronization (в Microsoft.Synchronization.dll)

Синтаксис

'Декларация
Public Sub RecordConstraintConflictForItem ( _
    conflictingItemId As SyncId, _
    reason As ConstraintConflictReason _
)
'Применение
Dim instance As SaveChangeWithChangeUnitsContext
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
)

Параметры

  • conflictingItemId
    Тип Microsoft.Synchronization. . :: . .SyncId
    Идентификатор элемента назначения, конфликтующего с применяемым изменением.

Исключения

Исключение Условие
ArgumentNullException

Параметр conflictingItemId имеет значение null Nothing nullptr unit пустая ссылка (Nothing в Visual Basic) .

SyncInvalidOperationException

Для этого объекта уже установлен конфликт ограничения или устранимая ошибка.

Примеры

В следующем примере показано, как сообщить о конфликте ограничения, возникшем при создании нового элемента в реплике назначения.

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;
}

См. также

Справочник

SaveChangeWithChangeUnitsContext Класс

Элементы SaveChangeWithChangeUnitsContext

Перегрузка RecordConstraintConflictForItem

Пространство имен Microsoft.Synchronization