Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Записывает ошибку ограничения, возникшую при попытке применить изменение к элементу. Позволяет задать описание локального элемента, участвующего в конфликте ограничения с этим изменением.
Пространство имен: Microsoft.Synchronization.SimpleProviders
Сборка: Microsoft.Synchronization.SimpleProviders (в microsoft.synchronization.simpleproviders.dll)
Синтаксис
'Декларация
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, который применяет операции вставки к хранилищу образца данных в памяти. Метод регистрирует ошибку ограничения, если операция вставки не может быть применена. Чтобы просмотреть этот код в контексте полного приложения, см. приложение "Sync101 using Simple Sync Provider", которое можно найти в пакете Sync Framework SDK или на странице Code Gallery.
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