SimpleSyncProviderDeleteMode 列挙体
ローカルの項目の削除が他のレプリカに反映されるかどうかを指定するオプションを表します。
名前空間: Microsoft.Synchronization.SimpleProviders
アセンブリ: Microsoft.Synchronization.SimpleProviders (microsoft.synchronization.simpleproviders.dll 内)
構文
'宣言
Public Enumeration SimpleSyncProviderDeleteMode
'使用
Dim instance As SimpleSyncProviderDeleteMode
public enum SimpleSyncProviderDeleteMode
public enum class SimpleSyncProviderDeleteMode
public enum SimpleSyncProviderDeleteMode
public enum SimpleSyncProviderDeleteMode
メンバー
メンバー名 | 説明 | |
---|---|---|
LocalOnly | 項目はローカル ストアから削除されますが、削除は他のレプリカに反映されません。 | |
Normal | 項目がローカル ストアから削除され、削除が他のレプリカに反映されます。 |
解説
同期のシナリオによっては、ローカル レプリカ側の項目のみを削除し、この削除操作が他のレプリカには及ばないようにしなければならない場合があります。たとえば、サーバーが、それぞれ異なる営業担当者向けの情報を格納している複数のデバイスと同期するとします。それぞれのデバイスの記憶域は限られているため、営業担当者は、既に完了した古い注文をデバイスから削除します。この種の削除はサーバーに反映すべきではありません。サーバーにはこのデータが引き続き存在している必要があるためです。簡易プロバイダーでは、ローカルのデータだけを削除するように指定できます。削除の動作をセッション単位で制御するには、SetDeleteMode メソッドの適切なオプションを指定します。
例
次のコードは、同期中に削除が反映されないように指定する例です。
public override void EnumerateChanges(byte[] anchor, AnchorEnumerationContext context)
{
context.SetDeleteMode(SimpleSyncProviderDeleteMode.LocalOnly);
List<LocalItemChange> itemChanges = new List<LocalItemChange>();
int startIndex = -1;
if (anchor != null)
{
startIndex = _store.Changes.IndexOfKey(BitConverter.ToUInt64(anchor, 0));
}
for (int i = startIndex + 1; i < _store.Changes.Count; i++)
{
itemChanges.Add(_store.Changes.Values[i]);
}
// If the anchor is corrupt or out of date we could revert back to
// full enumeration mode for this session, and enumerate all items.
// This is done by calling context.ReportItemsAndAutodetectDeletes.
context.ReportChanges(itemChanges, _store.GetAnchor());
}
public override void EnumerateChanges(byte[] anchor, AnchorEnumerationContext context)
{
context.SetDeleteMode(SimpleSyncProviderDeleteMode.LocalOnly);
List<LocalItemChange> itemChanges = new List<LocalItemChange>();
int startIndex = -1;
if (anchor != null)
{
startIndex = _store.Changes.IndexOfKey(BitConverter.ToUInt64(anchor, 0));
}
for (int i = startIndex + 1; i < _store.Changes.Count; i++)
{
itemChanges.Add(_store.Changes.Values[i]);
}
// If the anchor is corrupt or out of date we could revert back to
// full enumeration mode for this session, and enumerate all items.
// This is done by calling context.ReportItemsAndAutodetectDeletes.
context.ReportChanges(itemChanges, _store.GetAnchor());
}