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, InsertItem 및 UpdateItem 메서드를 구현하여 처리됩니다.
예제
다음 코드 예제에서는 메모리 내 샘플 데이터 저장소에 삭제를 적용하는 이 메서드의 구현을 보여 줍니다. 전체 응용 프로그램의 맥락에서 이 코드를 보려면 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 네임스페이스