GetChangeBatch-Methode

Ruft, wenn in einer abgeleiteten Klasse überschrieben, einen Änderungsbatch mit Elementmetadaten für Elemente ab, die nicht im angegebenen Wissen des Zielanbieters enthalten sind.

Namespace:  Microsoft.Synchronization.MetadataStorage
Assembly:  Microsoft.Synchronization.MetadataStorage (in Microsoft.Synchronization.MetadataStorage.dll)

Syntax

'Declaration
Public MustOverride Function GetChangeBatch ( _
    batchSize As UInteger, _
    destinationKnowledge As SyncKnowledge _
) As ChangeBatch
'Usage
Dim instance As ReplicaMetadata
Dim batchSize As UInteger
Dim destinationKnowledge As SyncKnowledge
Dim returnValue As ChangeBatch

returnValue = instance.GetChangeBatch(batchSize, _
    destinationKnowledge)
public abstract ChangeBatch GetChangeBatch(
    uint batchSize,
    SyncKnowledge destinationKnowledge
)
public:
virtual ChangeBatch^ GetChangeBatch(
    unsigned int batchSize, 
    SyncKnowledge^ destinationKnowledge
) abstract
abstract GetChangeBatch : 
        batchSize:uint32 * 
        destinationKnowledge:SyncKnowledge -> ChangeBatch 
public abstract function GetChangeBatch(
    batchSize : uint, 
    destinationKnowledge : SyncKnowledge
) : ChangeBatch

Parameter

Rückgabewert

Typ: Microsoft.Synchronization. . :: . .ChangeBatch
Ein Änderungsbatch mit Elementmetadaten für Elemente, die nicht im angegebenen Wissen des Zielanbieters enthalten sind.

Ausnahmen

Ausnahme Bedingung
ObjectDisposedException

Das Objekt wurde verworfen oder nicht ordnungsgemäß initialisiert.

ArgumentOutOfRangeException

batchSize ist 0.

ArgumentNullException

destinationKnowledge ist NULL.

Hinweise

Diese Methode ist bei der Implementierung der GetChangeBatch-Methode für Synchronisierungsanbieter hilfreich.

Vor dem Aufrufen dieser Methode müssen Anbieter sicherstellen, dass die Versionen im Metadatenspeicher alle lokalen Änderungen, einschließlich Löschungen, berücksichtigen. Dies wird durch einen expliziten Metadatenverwaltungsdurchlauf erreicht, in dem Elemente aufgelistet und ihre Metadaten aktualisiert werden.

Die Implementierung dieser Klasse, die durch SqlMetadataStore zur Verfügung gestellt wird, fügt dem Änderungsbatch Änderungen geordnet nach der globalen ID hinzu.

Die Implementierung dieser Klasse, die durch SqlMetadataStore zur Verfügung gestellt wird, legt IsLastBatch für den zurückgegebenen Änderungsbatch auf true fest, wenn keine zu sendenden Änderungen mehr vorhanden sind.

Hinweise für Implementierer

Um einen Anbieter, der Sortierungen nach globaler ID durchführt und Bereiche verwenden kann, zu unterstützen, sollten Änderungen in der Reihenfolge ihrer globalen ID aufgelistet und dem Änderungsbatch hinzugefügt werden. Durch die erste Änderung im zurückgegebenen Änderungsbatch wird ein neuer Bereich gestartet.

Wenn nach diesem Batch keine zu sendenden Änderungen mehr vorliegen, muss IsLastBatch für den zurückgegebenen Änderungsbatch auf true festgelegt werden. Andernfalls ruft Sync Framework erneut GetChangeBatch()()()() auf, um einen weiteren Änderungsbatch abzurufen.

Beispiele

Im folgenden Beispiel wird KnowledgeSyncProvider..::..GetChangeBatch durch Übergabe der Parameter an ReplicaMetadata..::..GetChangeBatch implementiert.

public override ChangeBatch GetChangeBatch(uint batchSize, SyncKnowledge destinationKnowledge, out object changeDataRetriever)
{
    // Return this object as the IChangeDataRetriever object that is called to retrieve item data.
    changeDataRetriever = this;

    // Use metadata storage service to get a batch of changes.
    return _ContactStore.ContactReplicaMetadata.GetChangeBatch(batchSize, destinationKnowledge);
}

Siehe auch

Verweis

ReplicaMetadata Klasse

ReplicaMetadata-Member

Microsoft.Synchronization.MetadataStorage-Namespace