GetFullEnumerationChangeBatch メソッド
派生クラスでオーバーライドされると、指定された下限以上の ID が付いている項目の項目メタデータが含まれた変更バッチを、完全な列挙の一部として取得します。
名前空間: Microsoft.Synchronization.MetadataStorage
アセンブリ: Microsoft.Synchronization.MetadataStorage (Microsoft.Synchronization.MetadataStorage.dll 内)
構文
'宣言
Public MustOverride Function GetFullEnumerationChangeBatch ( _
batchSize As UInteger, _
lowerEnumerationBound As SyncId, _
destinationKnowledge As SyncKnowledge _
) As FullEnumerationChangeBatch
'使用
Dim instance As ReplicaMetadata
Dim batchSize As UInteger
Dim lowerEnumerationBound As SyncId
Dim destinationKnowledge As SyncKnowledge
Dim returnValue As FullEnumerationChangeBatch
returnValue = instance.GetFullEnumerationChangeBatch(batchSize, _
lowerEnumerationBound, destinationKnowledge)
public abstract FullEnumerationChangeBatch GetFullEnumerationChangeBatch(
uint batchSize,
SyncId lowerEnumerationBound,
SyncKnowledge destinationKnowledge
)
public:
virtual FullEnumerationChangeBatch^ GetFullEnumerationChangeBatch(
unsigned int batchSize,
SyncId^ lowerEnumerationBound,
SyncKnowledge^ destinationKnowledge
) abstract
abstract GetFullEnumerationChangeBatch :
batchSize:uint32 *
lowerEnumerationBound:SyncId *
destinationKnowledge:SyncKnowledge -> FullEnumerationChangeBatch
public abstract function GetFullEnumerationChangeBatch(
batchSize : uint,
lowerEnumerationBound : SyncId,
destinationKnowledge : SyncKnowledge
) : FullEnumerationChangeBatch
パラメーター
- batchSize
型 : System. . :: . .UInt32
返す変更バッチのサイズです。
- lowerEnumerationBound
型 : Microsoft.Synchronization. . :: . .SyncId
項目 ID の下限です。このメソッドでは、ID がこの値以上の変更が返されます。
- destinationKnowledge
型 : Microsoft.Synchronization. . :: . .SyncKnowledge
同期先プロバイダーのナレッジです。
戻り値
型 : Microsoft.Synchronization. . :: . .FullEnumerationChangeBatch
指定された下限以上の ID が付いている項目の項目メタデータが含まれた変更バッチを返します。
例外
例外 | 条件 |
---|---|
ObjectDisposedException | オブジェクトが破棄されているか、正しく初期化されていません。 |
ArgumentOutOfRangeException | batchSize が 0 です。 |
ArgumentNullException | lowerEnumerationBound が null Nothing nullptr unit NULL 参照 (Visual Basic では Nothing) であるか、destinationKnowledge が null Nothing nullptr unit NULL 参照 (Visual Basic では Nothing) です。 |
説明
このメソッドを使用すると、同期プロバイダーは GetFullEnumerationChangeBatch メソッドを実装できるようになります。このメソッドは、忘れられたナレッジの復旧時に呼び出されます。
プロバイダーは、このメソッドを呼び出す前に、メタデータ ストア内のバージョンにローカルの変更 (削除など) がすべて反映されていることを確認する必要があります。これを行うには、メタデータを明示的にメンテナンスすることによって、項目を列挙し、そのメタデータを更新します。
SqlMetadataStore を使用することによって可能になるこのクラスの実装では、変更がグローバル ID の順で変更バッチに追加されます。
SqlMetadataStore を使用することによって可能になるこのクラスの実装では、destinationKnowledge に含まれていない、ID が lowerEnumerationBound より小さい項目もすべて返されます。
SqlMetadataStore を使用することによって可能になるこのクラスの実装では、送信する変更がなくなった場合に返される変更バッチで IsLastBatch が true に設定されます。
実装に関するメモ
このメソッドは、項目 ID が lowerEnumerationBound 以上の変更を項目 ID の順に列挙する必要があります。これにより、Sync Framework は、同期先プロバイダーのどの項目が同期元プロバイダーによって削除され、忘れられているかを特定できます。
このバッチの後で送信する変更がもうない場合は、返される変更バッチで IsLastBatch を true に設定する必要があります。そうしないと、次の変更バッチを取得するために、Sync Framework によって GetChangeBatch が再度呼び出されます。
項目変更に関するメタデータと共に項目データを送信するプロバイダーの場合は、destinationKnowledge を使用すると、項目データを送信する必要があるかどうかを判断できます。項目の変更が destinationKnowledge に含まれている場合は、項目データを送信する必要はありません。