InsertItem méthode
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
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
)
Paramètres
- itemData
Type : System. . :: . .Object
Données de l'élément au format spécifique au fournisseur.
- changeUnitsToCreate
Type : System.Collections.Generic. . :: . .IEnumerable< (Of < ( <'SyncId> ) > ) >
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
Type : Microsoft.Synchronization.SimpleProviders. . :: . .RecoverableErrorReportingContext
Objet RecoverableErrorReportingContext utilisé pour signaler des erreurs récupérables qui se produisent pendant les tentatives d'insertion d'un élément.
- keyAndUpdatedVersion
Type : Microsoft.Synchronization.SimpleProviders. . :: . .ItemFieldDictionary%
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
Type : System. . :: . .Boolean%
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.
Exemples
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