Метод 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