Метод ReplicaMetadata.GetChangeBatch
При переопределении в производном классе этот метод возвращает пакет изменений, содержащий метаданные элементов, которые отсутствовали в указанном наборе знаний от поставщика назначения.
Пространство имен: Microsoft.Synchronization.MetadataStorage
Сборка: Microsoft.Synchronization.MetadataStorage (в microsoft.synchronization.metadatastorage.dll)
Синтаксис
'Декларация
Public MustOverride Function GetChangeBatch ( _
batchSize As UInteger, _
destinationKnowledge As SyncKnowledge _
) As ChangeBatch
'Применение
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
Параметры
- batchSize
Размер создаваемого пакета.
- destinationKnowledge
Набор знаний от поставщика назначения.
Возвращаемое значение
Пакет изменений, содержащий метаданные элементов, которые отсутствовали в указанном наборе знаний от поставщика назначения.
Исключения
Тип исключения | Условие |
---|---|
Объект удален или неправильно инициализирован. |
|
Параметр batchSize равен 0. |
|
Параметр destinationKnowledge равен пустая ссылка (Nothing в Visual Basic). |
Замечания
Этот метод упрощает реализацию метода GetChangeBatch службы синхронизации.
Перед вызовом этого метода поставщик должен убедиться, что версии в хранилище метаданных отражают все локальные изменения, включая операции удаления. Это достигается с помощью явного этапа обслуживания метаданных, в котором перечисляются элементы и обновляются их метаданные.
Реализация этого класса, которая возможна через класс SqlMetadataStore, добавляет изменения в пакет в порядке глобальных идентификаторов.
Реализация этого класса, которая возможна через класс SqlMetadataStore, устанавливает свойство IsLastBatch в значение true для возвращаемого пакета изменений, если отсутствуют неотправленные изменения.
Примечания по реализации. Чтобы упростить задачу поставщика, использующего порядок глобальных идентификаторов и имеющего возможность использования диапазонов, изменения следует перечислить и добавить в пакет изменений в порядке глобальных идентификаторов. Первое изменение в возвращаемом пакете открывает новый диапазон. Если после этого пакета не осталось ни одного неотправленного изменения, то в возвращаемом пакете изменений необходимо установить свойство IsLastBatch в значение true. В противном случае Sync Framework повторно вызовет метод GetChangeBatch, чтобы получить следующий пакет изменений.
Пример
В следующем примере выполняется реализация метода KnowledgeSyncProvider.GetChangeBatch передачей параметров методу 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);
}
См. также
Справочник
Класс ReplicaMetadata
Элементы ReplicaMetadata
Пространство имен Microsoft.Synchronization.MetadataStorage