Freigeben über


AnchorEnumerationContext.SetDeleteMode-Methode

Legt fest, ob eine Löschung eine normale Löschung ist, die zu anderen Replikaten weitergegeben wird, oder eine nur lokale Löschung.

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

Syntax

'Declaration
Public Overrides Sub SetDeleteMode ( _
    deleteMode As SimpleSyncProviderDeleteMode _
)
'Usage
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
)

Parameter

  • deleteMode
    Ein SimpleSyncProviderDeleteMode-Auflistungswert, der angibt, ob es sich bei einem Löschvorgang um einen normalen Löschvorgang handelt, der an andere Replikate weitergegeben wird, oder um einen Löschvorgang, der nur lokal ausgeführt wird.

Hinweise

Einige Synchronisierungsszenarien erfordern die Möglichkeit, ein Element auf einem lokalen Replikat zu löschen, ohne diese Löschung an andere Replikate weiterzugeben. Beispielsweise könnte ein Server mit mehreren Geräten synchronisiert werden, auf denen Informationen für verschiedene Vertriebsmitarbeiter gespeichert werden. Jedes Gerät verfügt nur über beschränkten Speicherplatz, sodass die Vertriebsmitarbeiter alte, abgeschlossene Aufträge auf dem Gerät löschen. Diese Arten von Löschungen sollen nicht zum Server weitergegeben werden, da die entsprechenden Daten dort weiterhin benötigt werden. Bei einfachen Anbietern können Sie angeben, dass die Daten nur lokal gelöscht werden sollen. Um das Verhalten von Löschungen für die jeweilige Sitzung zu steuern, geben Sie die entsprechende Option mit dieser Methode an.

Beispiel

Im folgenden Codebeispiel wird festgelegt, dass Löschungen während der Synchronisierung nicht weitergegeben werden sollen.

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

Siehe auch

Verweis

AnchorEnumerationContext-Klasse
AnchorEnumerationContext-Member
Microsoft.Synchronization.SimpleProviders-Namespace