Поделиться через


Метод AnchorEnumerationContext.SetDeleteMode

Устанавливает, является операция удаления нормальным удалением, которое распространяется на другие реплики, или только локальным удалением.

Пространство имен: Microsoft.Synchronization.SimpleProviders
Сборка: Microsoft.Synchronization.SimpleProviders (в microsoft.synchronization.simpleproviders.dll)

Синтаксис

'Декларация
Public Overrides Sub SetDeleteMode ( _
    deleteMode As SimpleSyncProviderDeleteMode _
)
'Применение
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
)

Параметры

  • deleteMode
    Значение перечисления SimpleSyncProviderDeleteMode определяет, является ли операция удаления нормальным удалением, которое распространяется на другие реплики, или только локальным удалением.

Замечания

В некоторых сценариях синхронизации требуется возможность удалять элемент в локальной реплике, не распространяя это удаление на другие реплики. Например, сервер может синхронизироваться с несколькими устройствами, хранящими данные для различных продавцов. Объем места на каждом устройстве ограничен, и поэтому продавцы удаляют старые выполненные заказы. Такие операции удаления не должны передаваться на сервер, поскольку на сервере необходимо хранить эти данные. Простые поставщики позволяют указать, что данные нужно удалять только локально. Для управления обработкой операций удаления для каждого сеанса, задайте нужный параметр с помощью этого метода.

Пример

В следующем примере кода показано, что операции удаления не должны распространяться во время синхронизации.

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

См. также

Справочник

Класс AnchorEnumerationContext
Элементы AnchorEnumerationContext
Пространство имен Microsoft.Synchronization.SimpleProviders