共用方式為


AnchorEnumerationContext.SetDeleteMode 方法

設定刪除是傳播至其他複寫的一般刪除,還是僅限本機的刪除。

命名空間: Microsoft.Synchronization.SimpleProviders
組件: Microsoft.Synchronization.SimpleProviders (在 microsoft.synchronization.simpleproviders.dll)

語法

'宣告
Public Overrides Sub SetDeleteMode ( _
    deleteMode As SimpleSyncProviderDeleteMode _
)
'用途
Dim instance As AnchorEnumerationContext
Dim deleteMode As SimpleSyncProviderDeleteMode

instance.SetDeleteMode(deleteMode)
public override void SetDeleteMode (
    SimpleSyncProviderDeleteMode deleteMode
)
public:
virtual void SetDeleteMode (
    SimpleSyncProviderDeleteMode deleteMode
) override
public void SetDeleteMode (
    SimpleSyncProviderDeleteMode deleteMode
)
public override function SetDeleteMode (
    deleteMode : SimpleSyncProviderDeleteMode
)

參數

  • deleteMode
    SimpleSyncProviderDeleteMode 列舉值,這個值會指定刪除是傳播至其他複寫的一般刪除,還是僅限本機的刪除。

備註

某些同步處理案例需要能夠刪除本機複寫之某個項目的能力,而不需將該項刪除動作傳播到其他複寫。例如,伺服器可能會與存放不同銷售人員之資訊的幾個裝置同步處理。每一個裝置的空間都有限,因此銷售人員會從裝置中刪除舊的完成訂單。這類刪除動作不應該傳播到伺服器,因為伺服器仍需要此資料。簡單提供者可讓您指定只能在本機刪除資料。若要根據每個工作階段來控制刪除行為,請使用此方法指定適當的選項。

範例

下列程式碼範例指定不應該在同步處理期間傳播刪除動作。

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()); 
} 

請參閱

參考

AnchorEnumerationContext 類別
AnchorEnumerationContext 成員
Microsoft.Synchronization.SimpleProviders 命名空間