SimpleSyncProvider.InsertItem Método
Cuando se invalida en una clase derivada, lo llama el tiempo de ejecución de Sync Framework para insertar un elemento en el almacén de destino.
Espacio de nombres: Microsoft.Synchronization.SimpleProviders
Ensamblado: Microsoft.Synchronization.SimpleProviders (en microsoft.synchronization.simpleproviders.dll)
Sintaxis
'Declaración
Public MustOverride Sub InsertItem ( _
itemData As Object, _
changeUnitsToCreate As IEnumerable(Of SyncId), _
recoverableErrorReportingContext As RecoverableErrorReportingContext, _
<OutAttribute> ByRef keyAndUpdatedVersion As ItemFieldDictionary, _
<OutAttribute> ByRef commitKnowledgeAfterThisItem As Boolean _
)
'Uso
Dim instance As SimpleSyncProvider
Dim itemData As Object
Dim changeUnitsToCreate As IEnumerable(Of SyncId)
Dim recoverableErrorReportingContext As RecoverableErrorReportingContext
Dim keyAndUpdatedVersion As ItemFieldDictionary
Dim commitKnowledgeAfterThisItem As Boolean
instance.InsertItem(itemData, changeUnitsToCreate, recoverableErrorReportingContext, keyAndUpdatedVersion, commitKnowledgeAfterThisItem)
public abstract void InsertItem (
Object itemData,
IEnumerable<SyncId> changeUnitsToCreate,
RecoverableErrorReportingContext recoverableErrorReportingContext,
out ItemFieldDictionary keyAndUpdatedVersion,
out bool commitKnowledgeAfterThisItem
)
public:
virtual void InsertItem (
Object^ itemData,
IEnumerable<SyncId^>^ changeUnitsToCreate,
RecoverableErrorReportingContext^ recoverableErrorReportingContext,
[OutAttribute] ItemFieldDictionary^% keyAndUpdatedVersion,
[OutAttribute] bool% commitKnowledgeAfterThisItem
) abstract
public abstract void InsertItem (
Object itemData,
IEnumerable<SyncId> changeUnitsToCreate,
RecoverableErrorReportingContext recoverableErrorReportingContext,
/** @attribute OutAttribute() */ /** @ref */ ItemFieldDictionary keyAndUpdatedVersion,
/** @attribute OutAttribute() */ /** @ref */ boolean commitKnowledgeAfterThisItem
)
JScript does not support passing value-type arguments by reference.
Parámetros
- itemData
Datos para el elemento en el formato específico del proveedor.
- changeUnitsToCreate
Objeto SyncId que contiene las unidades de cambio que se deben insertar para un elemento. El parámetro debe ser nulo (no vacío) si no se especifica ninguna unidad de cambio.
- recoverableErrorReportingContext
Objeto RecoverableErrorReportingContext que se utiliza para notificar errores recuperables que se producen al intentar insertar un elemento.
- keyAndUpdatedVersion
Devuelve las propiedades de clave y versión actualizada del elemento que se va a insertar. Si el valor devuelto no es válido, el tiempo de ejecución de Sync Framework genera ArgumentOutOfRangeException, que finaliza la sesión.
- commitKnowledgeAfterThisItem
Devuelve información sobre si el tiempo de ejecución de Sync Framework debe confirmar el conocimiento en el almacén de metadatos cuando se completa el procesamiento del elemento especificado.
Notas
Una vez que Sync Framework detecta y carga los cambios del origen, debe aplicar estos cambios y los cambios de los metadatos correspondientes a la réplica de destino. Sync Framework administra los cambios de metadatos en el destino, pero la aplicación de los cambios realizados en los datos es específica de cada almacén y se administra mediante la implementación de los métodos siguientes DeleteItem, InsertItem y UpdateItem.
Ejemplo
El siguiente ejemplo de código muestra una implementación de este método que aplica inserciones a un almacén de datos de ejemplo en memoria. ItemTransfer
es un mecanismo de trasferencia simple que se utiliza cuando se cargan cambios desde el origen y se aplican al destino. Para consultar este código en el contexto de una aplicación completa, vea la aplicación "Sync101 using Simple Sync Provider"
que está disponible en Sync Framework SDK y en 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
Vea también
Referencia
SimpleSyncProvider Clase
SimpleSyncProvider Miembros
Microsoft.Synchronization.SimpleProviders Espacio de nombres