Partager via


Méthode SimpleSyncProvider.DeleteItem

En cas de substitution dans une classe dérivée, appelé par le runtime de Sync Framework pour supprimer un élément du magasin de destination.

Espace de noms: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (dans microsoft.synchronization.simpleproviders.dll)

Syntaxe

'Déclaration
Public MustOverride Sub DeleteItem ( _
    keyAndExpectedVersion As ItemFieldDictionary, _
    recoverableErrorReportingContext As RecoverableErrorReportingContext, _
    <OutAttribute> ByRef commitKnowledgeAfterThisItem As Boolean _
)
'Utilisation
Dim instance As SimpleSyncProvider
Dim keyAndExpectedVersion As ItemFieldDictionary
Dim recoverableErrorReportingContext As RecoverableErrorReportingContext
Dim commitKnowledgeAfterThisItem As Boolean

instance.DeleteItem(keyAndExpectedVersion, recoverableErrorReportingContext, commitKnowledgeAfterThisItem)
public abstract void DeleteItem (
    ItemFieldDictionary keyAndExpectedVersion,
    RecoverableErrorReportingContext recoverableErrorReportingContext,
    out bool commitKnowledgeAfterThisItem
)
public:
virtual void DeleteItem (
    ItemFieldDictionary^ keyAndExpectedVersion, 
    RecoverableErrorReportingContext^ recoverableErrorReportingContext, 
    [OutAttribute] bool% commitKnowledgeAfterThisItem
) abstract
public abstract void DeleteItem (
    ItemFieldDictionary keyAndExpectedVersion, 
    RecoverableErrorReportingContext recoverableErrorReportingContext, 
    /** @attribute OutAttribute() */ /** @ref */ boolean commitKnowledgeAfterThisItem
)
JScript does not support passing value-type arguments by reference.

Paramètres

  • keyAndExpectedVersion
    Propriétés de clé et de version attendue de l'élément à supprimer. Le fournisseur doit effectuer un contrôle d'accès concurrentiel optimiste pour vérifier que la version de l'élément sur la destination correspond aux valeurs disponibles dans keyAndExpectedVersion. Si ce contrôle échoue, le fournisseur doit signaler une erreur récupérable à l'aide d'un objet RecoverableErrorReportingContext.
  • recoverableErrorReportingContext
    Objet RecoverableErrorReportingContext utilisé pour signaler des erreurs récupérables qui se produisent pendant les tentatives de suppression d'un élément.
  • commitKnowledgeAfterThisItem
    Indique en retour si Sync Framework Runtime doit valider la connaissance dans le magasin des métadonnées une fois le traitement terminé pour l'élément spécifié.

Notes

Après avoir détecté et chargé les modifications de la source, Sync Framework doit appliquer ces modifications et les modifications de métadonnées correspondantes au réplica de destination. Les modifications de métadonnées sur la destination sont gérées par Sync Framework, mais l'application des modifications de données est spécifique au magasin et gérée en implémentant les méthodes suivantes : DeleteItem, InsertItem et UpdateItem.

Exemple

L'exemple de code suivant affiche une implémentation de cette méthode qui applique des suppressions à un magasin d'exemples de données en mémoire. Pour consulter ce code dans le contexte d'une application complète, consultez l'application "Sync101 using Simple Sync Provider" qui est disponible dans le Kit de développement logiciel (SDK) Sync Framework et de Code Gallery.

public override void DeleteItem(ItemFieldDictionary keyAndExpectedVersion, 
    RecoverableErrorReportingContext recoverableErrorReportingContext, 
    out bool commitKnowledgeAfterThisItem)
{
    IDictionary<uint, ItemField> expectedFields = (IDictionary<uint, ItemField>)keyAndExpectedVersion;
    ulong id = (ulong)expectedFields[CUSTOM_FIELD_ID].Value;
    if (_store.Contains(id))
    {
        _store.DeleteItem(id);
    }
    else
    {
        // If the item to delete does not exist, record an error on this change and 
        // continue with the rest of the session.
        recoverableErrorReportingContext.RecordRecoverableErrorForChange(new RecoverableErrorData(new Exception("Item not found in the store")));
    }
    commitKnowledgeAfterThisItem = false;
}
Public Overrides Sub DeleteItem(ByVal keyAndExpectedVersion As ItemFieldDictionary, ByVal recoverableErrorReportingContext As RecoverableErrorReportingContext, ByRef commitKnowledgeAfterThisItem As Boolean)
    Dim expectedFields As IDictionary(Of UInteger, ItemField) = DirectCast(keyAndExpectedVersion, IDictionary(Of UInteger, ItemField))
    Dim id As ULong = CULng(expectedFields(CUSTOM_FIELD_ID).Value)
    If _store.Contains(id) Then
        _store.DeleteItem(id)
    Else
        ' If the item to delete does not exist, record an error on this change and 
        ' continue with the rest of the session. 
        recoverableErrorReportingContext.RecordRecoverableErrorForChange(New RecoverableErrorData(New Exception("Item not found in the store")))
    End If
    commitKnowledgeAfterThisItem = False
End Sub

Voir aussi

Référence

Classe SimpleSyncProvider
Membres SimpleSyncProvider
Espace de noms Microsoft.Synchronization.SimpleProviders