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 取得之這個類別的實作,會依照全域識別碼順序將變更加入到變更批次。
當沒有其他變更要傳送時,透過 SqlMetadataStore 取得之這個類別的實作會在傳回的變更批次上將 IsLastBatch 設定為 true。
實作器注意事項: 為了幫助使用全域識別碼順序且能夠使用範圍的提供者,應該要列舉變更,並依照全域識別碼順序將變更加入到變更批次。傳回之變更批次內的第一個變更會開始新的範圍。 如果這個批次之後沒有其他變更要傳送,必須在傳回的變更批次上將 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 命名空間