Condividi tramite


Metodo SimpleSyncProvider.DeleteItem

Quando sottoposto a override in una classe derivata, viene chiamato dal runtime di Sync Framework per eliminare un elemento dall'archivio di destinazione.

Spazio dei nomi: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (in microsoft.synchronization.simpleproviders.dll)

Sintassi

'Dichiarazione
Public MustOverride Sub DeleteItem ( _
    keyAndExpectedVersion As ItemFieldDictionary, _
    recoverableErrorReportingContext As RecoverableErrorReportingContext, _
    <OutAttribute> ByRef commitKnowledgeAfterThisItem As Boolean _
)
'Utilizzo
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.

Parametri

  • keyAndExpectedVersion
    Proprietà della chiave e della versione prevista dell'elemento da eliminare. Il provider deve eseguire un controllo della concorrenza ottimistica per verificare che la versione dell'elemento nella destinazione corrisponda ai valori trovati in keyAndExpectedVersion. Se questo controllo ha esito negativo, il provider deve segnalare un errore reversibile tramite un oggetto RecoverableErrorReportingContext.
  • recoverableErrorReportingContext
    Oggetto RecoverableErrorReportingContext utilizzato per segnalare errori reversibili che si verificano durante i tentativi di eliminare un elemento.
  • commitKnowledgeAfterThisItem
    Restituisce un valore che indica se il runtime di Sync Framework deve eseguire il commit della conoscenza nell'archivio dei metadati dopo che è stata completata l'elaborazione dell'elemento specificato.

Osservazioni

Dopo che in Sync Framework sono state rilevate e caricate le modifiche dalla replica di origine, tali modifiche e le modifiche ai metadati corrispondenti devono essere applicate alla replica di destinazione. Le modifiche ai metadati nella destinazione vengono gestite da Sync Framework, ma l'applicazione delle modifiche ai dati è un'attività specifica dell'archivio e viene gestita implementando i metodi seguenti: DeleteItem, InsertItem e UpdateItem.

Esempio

Nell'esempio di codice seguente viene illustrata un'implementazione di questo metodo che applica eliminazioni a un archivio dati di esempio in memoria. Per visualizzare il codice nel contesto di un'applicazione completa, vedere l'applicazione "Sync101 using Simple Sync Provider" disponibile in Sync Framework SDK e in 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

Vedere anche

Riferimento

Classe SimpleSyncProvider
Membri SimpleSyncProvider
Spazio dei nomi Microsoft.Synchronization.SimpleProviders