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 为 null 引用(在 Visual Basic 中为 Nothing)。 |
备注
此方法可帮助同步提供程序实现其 GetChangeBatch 方法。
在提供程序调用此方法之前,它们必须确保元数据存储区中的版本反映了包括删除在内的所有本地变更。其实现方法为通过显式元数据维护传递来枚举项并更新其元数据。
可通过 SqlMetadataStore 获得的此类的实现按照全局 ID 的顺序将变更添加到变更批中。
可通过 SqlMetadataStore 获得的此类的实现在不再有变更要发送时,将返回的变更批的 IsLastBatch 设置为 true。
实施者注意事项: 若要帮助使用全局 ID 排序且能够使用范围的提供程序,则应枚举变更,并按照全局 ID 的顺序将变更添加到变更批中。返回的变更批中的第一个变更会开始一个新范围。 如果在此批之后再无变更要发送,则必须将返回的变更批的 IsLastBatch 设置为 true,否则 Sync Framework 将再次调用 GetChangeBatch 来检索另一个变更批。
示例
以下示例通过将参数传递到 ReplicaMetadata.GetChangeBatch 来实现 KnowledgeSyncProvider.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 命名空间