Partager via


Méthode SimpleSyncProvider.InsertItem

En cas de substitution dans une classe dérivée, appelé par le runtime de Sync Framework pour insérer un élément dans le magasin de destination.

Espace de noms: Microsoft.Synchronization.SimpleProviders
Assembly: Microsoft.Synchronization.SimpleProviders (dans microsoft.synchronization.simpleproviders.dll)

Syntaxe

'Déclaration
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 _
)
'Utilisation
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.

Paramètres

  • itemData
    Données de l'élément au format spécifique au fournisseur.
  • changeUnitsToCreate
    Objet SyncId qui contient les unités de modification à insérer pour un élément. Le paramètre doit être Null (non vide) si aucune unité de modification n'est spécifiée.
  • recoverableErrorReportingContext
    Objet RecoverableErrorReportingContext utilisé pour signaler des erreurs récupérables qui se produisent pendant les tentatives d'insertion d'un élément.
  • keyAndUpdatedVersion
    Retourne les propriétés de clé et de version mise à jour de l'élément à insérer. Si la valeur de retour n'est pas valide, le runtime de Sync Framework lève une exception ArgumentOutOfRangeException qui met fin à la session.
  • commitKnowledgeAfterThisItem
    Indique en retour si Sync Framework Runtime doit valider la connaissance dans le magasin des métadonnées une fois le traitement terminé pour l'élément spécifié.

Notes

Après avoir détecté et chargé les modifications de la source, Sync Framework doit appliquer ces modifications et les modifications de métadonnées correspondantes au réplica de destination. Les modifications de métadonnées sur la destination sont gérées par Sync Framework, mais l'application des modifications de données est spécifique au magasin et gérée en implémentant les méthodes suivantes : DeleteItem, InsertItem et UpdateItem.

Exemple

L'exemple de code suivant affiche une implémentation de cette méthode qui applique des insertions au magasin d'exemples de données en mémoire. ItemTransfer est un mécanisme de transfert simple utilisé lorsque les modifications sont chargées à partir de la source et appliquées à la destination. Pour consulter ce code dans le contexte d'une application complète, consultez l'application "Sync101 using Simple Sync Provider" qui est disponible dans le Kit de développement logiciel (SDK) Sync Framework et de 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

Voir aussi

Référence

Classe SimpleSyncProvider
Membres SimpleSyncProvider
Espace de noms Microsoft.Synchronization.SimpleProviders