Compartir a través de


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
abstract InsertItem : 
        itemData:Object * 
        changeUnitsToCreate:IEnumerable<SyncId> * 
        recoverableErrorReportingContext:RecoverableErrorReportingContext * 
        keyAndUpdatedVersion:ItemFieldDictionary byref * 
        commitKnowledgeAfterThisItem:bool byref -> unit 
public abstract function InsertItem(
    itemData : Object, 
    changeUnitsToCreate : IEnumerable<SyncId>, 
    recoverableErrorReportingContext : RecoverableErrorReportingContext, 
    keyAndUpdatedVersion : ItemFieldDictionary, 
    commitKnowledgeAfterThisItem : boolean
)

Parámetros

  • commitKnowledgeAfterThisItem
    Tipo: System. . :: . .Boolean%
    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.

Ejemplos

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