RecoverableErrorReportingContext.RecordConstraintError 메서드
변경 내용을 항목에 적용하는 동안 발생한 제약 조건 오류를 기록합니다. 변경 내용과 제약 조건 충돌 상태인 로컬 항목을 설명하는 데 사용됩니다.
네임스페이스: Microsoft.Synchronization.SimpleProviders
어셈블리: microsoft.synchronization.simpleproviders.dll의 Microsoft.Synchronization.SimpleProviders
구문
‘선언
Public Sub RecordConstraintError ( _
conflictingItemKey As ItemFieldDictionary _
)
‘사용 방법
Dim instance As RecoverableErrorReportingContext
Dim conflictingItemKey As ItemFieldDictionary
instance.RecordConstraintError(conflictingItemKey)
public void RecordConstraintError (
ItemFieldDictionary conflictingItemKey
)
public:
void RecordConstraintError (
ItemFieldDictionary^ conflictingItemKey
)
public void RecordConstraintError (
ItemFieldDictionary conflictingItemKey
)
public function RecordConstraintError (
conflictingItemKey : ItemFieldDictionary
)
매개 변수
- conflictingItemKey
제약 조건 오류가 기록될 항목의 키입니다.
예외
예외 형식 | 조건 |
---|---|
제약 조건 충돌의 결과로 적용 중인 변경 내용이 공급자에 의해 다음 동기화 세션까지 지연되었습니다. |
|
여러 제약 조건 오류가 있었거나 더 이상 유효하지 않은 개체에 대한 제약 조건 오류가 보고되었거나 제약 조건 오류 정책에서 제약 조건 오류의 복구가 허용되지 않습니다. |
주의
변경 내용은 나중에 동기화 세션에서 다시 적용되거나 해결됩니다. 제약 조건 충돌에 대한 자세한 내용은 단순 공급자의 충돌 처리를 참조하십시오.
예제
다음 코드 예제에서는 메모리 내 샘플 데이터 저장소에 삽입을 적용하는 InsertItem 메서드의 구현을 보여 줍니다. 이 메서드는 삽입을 적용할 수 없는 경우 제약 조건 오류를 기록합니다. 전체 응용 프로그램의 맥락에서 이 코드를 보려면 Sync Framework SDK 및 Code Gallery에서 사용할 수 있는 "Sync101 using Simple Sync Provider"
응용 프로그램을 참조하십시오.
public override void InsertItem(object itemData,
IEnumerable<SyncId> changeUnitsToCreate,
RecoverableErrorReportingContext recoverableErrorReportingContext,
out ItemFieldDictionary keyAndUpdatedVersion,
out bool commitKnowledgeAfterThisItem)
{
ItemTransfer transfer = (ItemTransfer)itemData;
ItemData dataCopy = new ItemData(transfer.ItemData);
// Check for duplicates, and record a constraint error if a duplicate is detected.
if (!_store.Contains(transfer.Id))
{
_store.CreateItem(dataCopy, transfer.Id);
keyAndUpdatedVersion = _store.CreateItemFieldDictionary(transfer.Id);
}
else
{
recoverableErrorReportingContext.RecordConstraintError(_store.CreateItemFieldDictionary(transfer.Id));
keyAndUpdatedVersion = null;
}
commitKnowledgeAfterThisItem = false;
}
Public Overrides Sub InsertItem(ByVal itemData As Object, ByVal changeUnitsToCreate As IEnumerable(Of SyncId), ByVal recoverableErrorReportingContext As RecoverableErrorReportingContext, ByRef keyAndUpdatedVersion As ItemFieldDictionary, ByRef commitKnowledgeAfterThisItem As Boolean)
Dim transfer As ItemTransfer = DirectCast(itemData, ItemTransfer)
Dim dataCopy As New ItemData(transfer.ItemData)
' Check for duplicates, and record a constraint error if a duplicate is detected.
If Not _store.Contains(transfer.Id) Then
_store.CreateItem(dataCopy, transfer.Id)
keyAndUpdatedVersion = _store.CreateItemFieldDictionary(transfer.Id)
Else
recoverableErrorReportingContext.RecordConstraintError(_store.CreateItemFieldDictionary(transfer.Id))
keyAndUpdatedVersion = Nothing
End If
commitKnowledgeAfterThisItem = False
End Sub
참고 항목
참조
RecoverableErrorReportingContext 클래스
RecoverableErrorReportingContext 멤버
Microsoft.Synchronization.SimpleProviders 네임스페이스