ICustomMapping.Resolve 方法

解决了在相对于其当前的客户端值列表项目中的一个或多个字段的值在数据库中,其当前值,当最初从数据库中检索其值的差异。

命名空间:  Microsoft.SharePoint.Linq
程序集:  Microsoft.SharePoint.Linq(位于 Microsoft.SharePoint.Linq.dll 中)

语法

声明
Sub Resolve ( _
    mode As RefreshMode, _
    originalListItem As Object, _
    databaseListItem As Object _
)
用法
Dim instance As ICustomMapping
Dim mode As RefreshMode
Dim originalListItem As Object
Dim databaseListItem As Object

instance.Resolve(mode, originalListItem, _
    databaseListItem)
void Resolve(
    RefreshMode mode,
    Object originalListItem,
    Object databaseListItem
)

参数

  • originalListItem
    类型:System.Object

    它最初从数据库中检索内容的客户端项后,可以强制转换为SPListItem对象表示列表项的值。

  • databaseListItem
    类型:System.Object

    一个对象,表示数据库项目中的列表项的当前值,并可以强制转换为SPListItem

示例

下面的代码演示了Resolve(RefreshMode, Object, Object)的示例实现。在此示例中,(其内容类型是书籍) 的书籍列表具有名为ISBNUPCA的新列。

public void Resolve(RefreshMode mode, object originalListObject, object databaseListObject)
{
    SPListItem originalListItem = (SPListItem)originalListObject;
    SPListItem databaseListItem = (SPListItem)databaseListObject;
           
    
    if ((mode == RefreshMode.OverwriteCurrentValues)
        ||
        ((mode == RefreshMode.KeepChanges) && (this == originalListItem)))
    
    {
        this.ISBN = databaseListItem["ISBN"];
        this.UPCA = databaseListItem["UPCA"];
    
    }
    else if (mode == RefreshMode.KeepChanges)
    {
        if (!(OriginalValues.Contains("ISBN")))
        {
            this.ISBN = databaseListItem["ISBN"];
        }
        
         if (!(OriginalValues.Contains("UPCA")))
        {
            this.UPCA = databaseListItem["UPCA"];
        }      
    }
} 
Public Sub Resolve(ByVal mode As RefreshMode, ByVal originalListObject As Object, ByVal databaseListObject As Object)
    Dim originalListItem As SPListItem = CType(originalListObject, SPListItem)
    Dim databaseListItem As SPListItem = CType(databaseListObject, SPListItem)


    If (mode = RefreshMode.OverwriteCurrentValues) OrElse ((mode = RefreshMode.KeepChanges) AndAlso (Me Is originalListItem)) Then

        Me.ISBN = databaseListItem("ISBN")
        Me.UPCA = databaseListItem("UPCA")

    ElseIf mode = RefreshMode.KeepChanges Then
        If Not(OriginalValues.Contains("ISBN")) Then
            Me.ISBN = databaseListItem("ISBN")
        End If

         If Not(OriginalValues.Contains("UPCA")) Then
            Me.UPCA = databaseListItem("UPCA")
         End If
    End If
End Sub

另请参阅

引用

ICustomMapping 接口

ICustomMapping 成员

Microsoft.SharePoint.Linq 命名空间

其他资源

Post-Deployment Extensions of a LINQ to SharePoint Solution