다음을 통해 공유


SimpleSyncProvider.DeleteItem 메서드

파생 클래스에서 재정의되면 대상 저장소에서 항목을 삭제하기 위해 Sync Framework Runtime에서 호출됩니다.

네임스페이스: Microsoft.Synchronization.SimpleProviders
어셈블리: microsoft.synchronization.simpleproviders.dll의 Microsoft.Synchronization.SimpleProviders

구문

‘선언
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 Runtime에서 메타데이터 저장소에 정보를 커밋할지 여부를 반환합니다.

주의

Sync Framework에서 원본의 변경 내용을 검색하고 로드한 후 이러한 변경 내용 및 해당 메타데이터 변경 내용을 대상 복제본에 적용해야 합니다. 대상에 있는 메타데이터 변경 내용은 Sync Framework에서 처리되지만 데이터 변경 내용 적용은 저장소 관련 작업이므로 DeleteItem, InsertItemUpdateItem 메서드를 구현하여 처리됩니다.

예제

다음 코드 예제에서는 메모리 내 샘플 데이터 저장소에 삭제를 적용하는 이 메서드의 구현을 보여 줍니다. 전체 응용 프로그램의 맥락에서 이 코드를 보려면 Sync Framework SDK 및 Code Gallery에서 사용할 수 있는 "Sync101 using Simple Sync Provider" 응용 프로그램을 참조하십시오.

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 네임스페이스