Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Registra un error de restricción que se produjo al intentar aplicar un cambio a un elemento. Se utiliza para describir un elemento local que está en conflicto de restricción con el cambio.
Espacio de nombres: Microsoft.Synchronization.SimpleProviders
Ensamblado: Microsoft.Synchronization.SimpleProviders (en microsoft.synchronization.simpleproviders.dll)
Sintaxis
'Declaración
Public Sub RecordConstraintError ( _
conflictingItemKey As ItemFieldDictionary _
)
'Uso
Dim instance As RecoverableErrorReportingContext
Dim conflictingItemKey As ItemFieldDictionary
instance.RecordConstraintError(conflictingItemKey)
public void RecordConstraintError (
ItemFieldDictionary conflictingItemKey
)
public:
void RecordConstraintError (
ItemFieldDictionary^ conflictingItemKey
)
public void RecordConstraintError (
ItemFieldDictionary conflictingItemKey
)
public function RecordConstraintError (
conflictingItemKey : ItemFieldDictionary
)
Parámetros
- conflictingItemKey
Clave del elemento para el que se registra un error de restricción.
Excepciones
| Tipo de excepción | Condición |
|---|---|
El proveedor aplazó el cambio que se va a aplicar hasta la próxima sesión de sincronización a causa del conflicto de restricción. |
|
Se produjeron varios errores de restricción, se notificó un error de restricción sobre un objeto que ya no es válido, o la directiva de errores de restricción no permite que los errores de restricción sean recuperables. |
Notas
El cambio se volverá a aplicar o se resolverá más adelante en la sesión de sincronización. Para obtener más información sobre conflictos de restricción, vea Controlar conflictos en proveedores simples.
Ejemplo
En el ejemplo de código siguiente se muestra una implementación del método InsertItem que aplica inserciones a un almacén de datos de ejemplo en memoria. El método registra un error de restricción si la inserción no se puede aplicar. Para consultar este código en el contexto de una aplicación completa, vea la aplicación "Sync101 using Simple Sync Provider" que está disponible en Sync Framework SDK y en Code Gallery.
public override void InsertItem(object itemData,
IEnumerable<SyncId> changeUnitsToCreate,
RecoverableErrorReportingContext recoverableErrorReportingContext,
out ItemFieldDictionary keyAndUpdatedVersion,
out bool commitKnowledgeAfterThisItem)
{
ItemTransfer transfer = (ItemTransfer)itemData;
ItemData dataCopy = new ItemData(transfer.ItemData);
// Check for duplicates, and record a constraint error if a duplicate is detected.
if (!_store.Contains(transfer.Id))
{
_store.CreateItem(dataCopy, transfer.Id);
keyAndUpdatedVersion = _store.CreateItemFieldDictionary(transfer.Id);
}
else
{
recoverableErrorReportingContext.RecordConstraintError(_store.CreateItemFieldDictionary(transfer.Id));
keyAndUpdatedVersion = null;
}
commitKnowledgeAfterThisItem = false;
}
Public Overrides Sub InsertItem(ByVal itemData As Object, ByVal changeUnitsToCreate As IEnumerable(Of SyncId), ByVal recoverableErrorReportingContext As RecoverableErrorReportingContext, ByRef keyAndUpdatedVersion As ItemFieldDictionary, ByRef commitKnowledgeAfterThisItem As Boolean)
Dim transfer As ItemTransfer = DirectCast(itemData, ItemTransfer)
Dim dataCopy As New ItemData(transfer.ItemData)
' Check for duplicates, and record a constraint error if a duplicate is detected.
If Not _store.Contains(transfer.Id) Then
_store.CreateItem(dataCopy, transfer.Id)
keyAndUpdatedVersion = _store.CreateItemFieldDictionary(transfer.Id)
Else
recoverableErrorReportingContext.RecordConstraintError(_store.CreateItemFieldDictionary(transfer.Id))
keyAndUpdatedVersion = Nothing
End If
commitKnowledgeAfterThisItem = False
End Sub
Vea también
Referencia
RecoverableErrorReportingContext Clase
RecoverableErrorReportingContext Miembros
Microsoft.Synchronization.SimpleProviders Espacio de nombres