InsertItem 方法

在派生类中重写时,由 Sync Framework 运行时调用以便将某一项插入目标存储区中。

命名空间:  Microsoft.Synchronization.SimpleProviders
程序集:  Microsoft.Synchronization.SimpleProviders(在 Microsoft.Synchronization.SimpleProviders.dll 中)

语法

声明
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 _
)
用法
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
)

参数

  • commitKnowledgeAfterThisItem
    类型:System. . :: . .Boolean%
    返回在完成了对指定项的处理后 Sync Framework 运行时是否应将知识提交到元数据存储区。

注释

在 Sync Framework 检测到并加载了来自源的变更后,它必须将这些变更和相应的元数据变更应用于目标副本。位于目标的元数据变更由 Sync Framework 处理,但应用数据变更是特定于存储区的,应通过实现以下方法来处理:DeleteItem、InsertItem 和 UpdateItem

示例

下面的代码示例演示此方法的实现,该方法将插入应用于内存中的示例数据存储区。ItemTransfer 是一种简单的传输机制,当从源加载变更和将变更应用于目标时使用。若要在完整应用程序的上下文中查看此代码,请参见"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

请参阅

参考

SimpleSyncProvider类

SimpleSyncProvider 成员

Microsoft.Synchronization.SimpleProviders 命名空间