共用方式為


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
    目的地提供者的知識。

傳回值

變更批次,其中包含目的地提供者之指定知識內未包含之項目的項目中繼資料。

例外

例外狀況型別 條件

ObjectDisposedException

此物件已被處置,或是未正確初始化。

ArgumentOutOfRangeException

batchSize 是 0。

ArgumentNullException

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 命名空間