Condividi tramite


Metodo AnchorEnumerationContext.SetDeleteMode

Imposta un valore che indica se si tratta di un'eliminazione normale propagata alle altre repliche o se si tratta di un'eliminazione solo locale.

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

Sintassi

'Dichiarazione
Public Overrides Sub SetDeleteMode ( _
    deleteMode As SimpleSyncProviderDeleteMode _
)
'Utilizzo
Dim instance As AnchorEnumerationContext
Dim deleteMode As SimpleSyncProviderDeleteMode

instance.SetDeleteMode(deleteMode)
public override void SetDeleteMode (
    SimpleSyncProviderDeleteMode deleteMode
)
public:
virtual void SetDeleteMode (
    SimpleSyncProviderDeleteMode deleteMode
) override
public void SetDeleteMode (
    SimpleSyncProviderDeleteMode deleteMode
)
public override function SetDeleteMode (
    deleteMode : SimpleSyncProviderDeleteMode
)

Parametri

  • deleteMode
    Valore dell'enumerazione SimpleSyncProviderDeleteMode che specifica se si tratta di un'eliminazione normale propagata ad altre repliche o di un'eliminazione solo locale.

Osservazioni

In alcuni scenari di sincronizzazione è richiesta la possibilità di eliminare un elemento in una replica locale senza propagare tale eliminazione ad altre repliche. Ad esempio, un server potrebbe essere sincronizzato con diversi dispositivi in cui sono archiviate informazioni per venditori diversi. Ogni dispositivo dispone di uno spazio limitato, pertanto i venditori eliminano i precedenti ordini completati dal dispositivo. Questi tipi di eliminazioni non devono essere propagati al server, dove tali dati sono ancora necessari. I provider semplici consentono di specificare che i dati devono essere eliminati solo localmente. Per controllare il comportamento delle eliminazioni per ogni singola sessione, specificare l'opzione appropriata utilizzando questo metodo.

Esempio

Nell'esempio di codice seguente viene specificato che le eliminazioni non devono essere propagate durante la sincronizzazione.

public override void EnumerateChanges(byte[] anchor, AnchorEnumerationContext context)
{

    context.SetDeleteMode(SimpleSyncProviderDeleteMode.LocalOnly);
    
    List<LocalItemChange> itemChanges = new List<LocalItemChange>();

    int startIndex = -1;

    if (anchor != null)
    {
        startIndex = _store.Changes.IndexOfKey(BitConverter.ToUInt64(anchor, 0));
    }

    for (int i = startIndex + 1; i < _store.Changes.Count; i++)
    {
        itemChanges.Add(_store.Changes.Values[i]);
    }

    // If the anchor is corrupt or out of date we could revert back to 
    // full enumeration mode for this session, and enumerate all items. 
    // This is done by calling context.ReportItemsAndAutodetectDeletes.
    context.ReportChanges(itemChanges, _store.GetAnchor());
}
public override void EnumerateChanges(byte[] anchor, AnchorEnumerationContext context) 
{ 

context.SetDeleteMode(SimpleSyncProviderDeleteMode.LocalOnly); 

List<LocalItemChange> itemChanges = new List<LocalItemChange>(); 

int startIndex = -1; 

if (anchor != null) 
{ 
startIndex = _store.Changes.IndexOfKey(BitConverter.ToUInt64(anchor, 0)); 
} 

for (int i = startIndex + 1; i < _store.Changes.Count; i++) 
{ 
itemChanges.Add(_store.Changes.Values[i]); 
} 

// If the anchor is corrupt or out of date we could revert back to 
// full enumeration mode for this session, and enumerate all items. 
// This is done by calling context.ReportItemsAndAutodetectDeletes. 
context.ReportChanges(itemChanges, _store.GetAnchor()); 
} 

Vedere anche

Riferimento

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