Compartilhar via


Método AnchorEnumerationContext.SetDeleteMode

Define se uma exclusão é uma exclusão normal propagada para outras réplicas ou uma exclusão apenas local.

Namespace: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (em microsoft.synchronization.simpleproviders.dll)

Sintaxe

'Declaração
Public Overrides Sub SetDeleteMode ( _
    deleteMode As SimpleSyncProviderDeleteMode _
)
'Uso
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
)

Parâmetros

  • deleteMode
    Um valor de enumeração SimpleSyncProviderDeleteMode que especifica se uma exclusão é uma exclusão normal propagada para outras réplicas ou uma exclusão apenas local.

Comentários

Alguns cenários de sincronização exigem a capacidade de excluir um item em uma réplica local sem propagar essa exclusão para outras réplicas. Por exemplo, um servidor pode sincronizar com vários dispositivos que armazenam informações para diferentes vendedores. Cada dispositivo tem espaço limitado. Assim, os vendedores excluem ordens concluídas antigas do dispositivo. Esses tipos de exclusões não devem ser propagadas para o servidor, porque o servidor ainda necessita dos dados. Os provedores simples permitem especificar que os dados só devem ser excluídos localmente. Para controlar o comportamento das exclusões por sessão, especifique a opção apropriada usando esse método.

Exemplo

O exemplo de código a seguir especifica que as exclusões não devem ser propagadas durante a sincronização.

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

Consulte também

Referência

Classe AnchorEnumerationContext
Membros AnchorEnumerationContext
Namespace Microsoft.Synchronization.SimpleProviders