Compartilhar via


Método ReplicaMetadata.GetChangeBatch

Quando substituído em uma classe derivada, obtém um lote de alterações que contém metadados para os itens que não estão contidos no conhecimento especificado do provedor de destino.

Namespace: Microsoft.Synchronization.MetadataStorage
Assembly: Microsoft.Synchronization.MetadataStorage (em microsoft.synchronization.metadatastorage.dll)

Sintaxe

'Declaração
Public MustOverride Function GetChangeBatch ( _
    batchSize As UInteger, _
    destinationKnowledge As SyncKnowledge _
) As ChangeBatch
'Uso
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
public abstract ChangeBatch GetChangeBatch (
    UInt32 batchSize, 
    SyncKnowledge destinationKnowledge
)
public abstract function GetChangeBatch (
    batchSize : uint, 
    destinationKnowledge : SyncKnowledge
) : ChangeBatch

Parâmetros

  • batchSize
    O tamanho do lote a ser criado.
  • destinationKnowledge
    O conhecimento do provedor de destino.

Valor de retorno

Um lote de alterações que contém metadados dos itens que não estão contidos no conhecimento especificado do provedor de destino.

Exceções

Tipo de exceção Condição

ObjectDisposedException

O objeto foi descartado ou não foi inicializado corretamente.

ArgumentOutOfRangeException

batchSize é 0.

ArgumentNullException

destinationKnowledge é um referência nula (Nothing no Visual Basic).

Comentários

Este método ajuda um provedor de sincronização a implementar seu método GetChangeBatch.

Antes de os provedores chamarem este método, eles devem garantir que as versões no repositório de metadados reflitam todas as alterações locais, inclusive exclusões. Isso pode ser feito por uma passagem de manutenção de metadados explícita para enumerar itens e atualizar seus metadados.

A implementação desta classe, que está disponível através de SqlMetadataStore, adiciona as alterações ao lote de alterações na ordem da ID global.

A implementação desta classe, que está disponível através de SqlMetadataStore, define IsLastBatch como true no lote de alterações retornado quando não há mais nenhuma alteração a ser enviada.

Observações para implementadores: Para ajudar um provedor que usa ordenação da ID global e tem a habilidade de usar intervalos, as alterações devem ser enumeradas e adicionadas ao lote de alterações na ordem da ID global. A primeira alteração do lote de alterações retornado inicia um novo intervalo. Se não houver mais nenhuma alteração a ser enviada depois deste lote, IsLastBatch deverá ser definido como true no lote de alterações retornado ou o Sync Framework chamará GetChangeBatch novamente para recuperar outro lote de alterações.

Exemplo

O exemplo a seguir implementa KnowledgeSyncProvider.GetChangeBatch passando os parâmetros para ReplicaMetadata.GetChangeBatch.

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

Consulte também

Referência

Classe ReplicaMetadata
Membros ReplicaMetadata
Namespace Microsoft.Synchronization.MetadataStorage