Поделиться через


Метод SimpleSyncProvider.DeleteItem

При переопределении в производном классе вызывается средой выполнения Sync Framework для удаления элемента из хранилища назначения.

Пространство имен: Microsoft.Synchronization.SimpleProviders
Сборка: Microsoft.Synchronization.SimpleProviders (в microsoft.synchronization.simpleproviders.dll)

Синтаксис

'Декларация
Public MustOverride Sub DeleteItem ( _
    keyAndExpectedVersion As ItemFieldDictionary, _
    recoverableErrorReportingContext As RecoverableErrorReportingContext, _
    <OutAttribute> ByRef commitKnowledgeAfterThisItem As Boolean _
)
'Применение
Dim instance As SimpleSyncProvider
Dim keyAndExpectedVersion As ItemFieldDictionary
Dim recoverableErrorReportingContext As RecoverableErrorReportingContext
Dim commitKnowledgeAfterThisItem As Boolean

instance.DeleteItem(keyAndExpectedVersion, recoverableErrorReportingContext, commitKnowledgeAfterThisItem)
public abstract void DeleteItem (
    ItemFieldDictionary keyAndExpectedVersion,
    RecoverableErrorReportingContext recoverableErrorReportingContext,
    out bool commitKnowledgeAfterThisItem
)
public:
virtual void DeleteItem (
    ItemFieldDictionary^ keyAndExpectedVersion, 
    RecoverableErrorReportingContext^ recoverableErrorReportingContext, 
    [OutAttribute] bool% commitKnowledgeAfterThisItem
) abstract
public abstract void DeleteItem (
    ItemFieldDictionary keyAndExpectedVersion, 
    RecoverableErrorReportingContext recoverableErrorReportingContext, 
    /** @attribute OutAttribute() */ /** @ref */ boolean commitKnowledgeAfterThisItem
)
JScript does not support passing value-type arguments by reference.

Параметры

  • keyAndExpectedVersion
    Свойства ключа и ожидаемой версии удаляемого элемента. Поставщик должен выполнить проверку оптимистичного параллелизма, чтобы проверить, что версия элемента в назначении соответствует значениям, найденным в параметре keyAndExpectedVersion. Если проверка не пройдена, то поставщик должен вернуть устранимую ошибку через объект RecoverableErrorReportingContext.
  • recoverableErrorReportingContext
    Объект RecoverableErrorReportingContext, который используется для возврата устранимых ошибок, возникших при попытке удаления элемента.
  • commitKnowledgeAfterThisItem
    Возвращает значение, определяющее, должна ли среда выполнения платформы Sync Framework осуществлять фиксацию набора знаний в хранилище метаданных после завершения обработки указанного элемента.

Замечания

После того как Sync Framework обнаруживает и загружает изменения из источника, эти изменения и соответствующие изменения метаданных необходимо применить в конечной реплике. Изменения метаданных на стороне назначения обрабатываются платформой Sync Framework, однако применение изменений данных зависит от хранилища и выполняется в реализации следующих методов: DeleteItem, InsertItem и UpdateItem.

Пример

В следующем примере кода показана реализация этого метода, который применяет операции удаления к хранилищу образца данных в памяти. Чтобы просмотреть этот код в контексте полного приложения, см. приложение "Sync101 using Simple Sync Provider", которое можно найти в пакете Sync Framework SDK или на странице Code Gallery.

public override void DeleteItem(ItemFieldDictionary keyAndExpectedVersion, 
    RecoverableErrorReportingContext recoverableErrorReportingContext, 
    out bool commitKnowledgeAfterThisItem)
{
    IDictionary<uint, ItemField> expectedFields = (IDictionary<uint, ItemField>)keyAndExpectedVersion;
    ulong id = (ulong)expectedFields[CUSTOM_FIELD_ID].Value;
    if (_store.Contains(id))
    {
        _store.DeleteItem(id);
    }
    else
    {
        // If the item to delete does not exist, record an error on this change and 
        // continue with the rest of the session.
        recoverableErrorReportingContext.RecordRecoverableErrorForChange(new RecoverableErrorData(new Exception("Item not found in the store")));
    }
    commitKnowledgeAfterThisItem = false;
}
Public Overrides Sub DeleteItem(ByVal keyAndExpectedVersion As ItemFieldDictionary, ByVal recoverableErrorReportingContext As RecoverableErrorReportingContext, ByRef commitKnowledgeAfterThisItem As Boolean)
    Dim expectedFields As IDictionary(Of UInteger, ItemField) = DirectCast(keyAndExpectedVersion, IDictionary(Of UInteger, ItemField))
    Dim id As ULong = CULng(expectedFields(CUSTOM_FIELD_ID).Value)
    If _store.Contains(id) Then
        _store.DeleteItem(id)
    Else
        ' If the item to delete does not exist, record an error on this change and 
        ' continue with the rest of the session. 
        recoverableErrorReportingContext.RecordRecoverableErrorForChange(New RecoverableErrorData(New Exception("Item not found in the store")))
    End If
    commitKnowledgeAfterThisItem = False
End Sub

См. также

Справочник

Класс SimpleSyncProvider
Элементы SimpleSyncProvider
Пространство имен Microsoft.Synchronization.SimpleProviders