de la propiedad DataContext.ChangeConflicts

Obtiene una colección de objetos que representan las discrepancias entre el valor actual del cliente y el valor actual de la base de datos de un campo en un elemento de lista.

Espacio de nombres:  Microsoft.SharePoint.Linq
Ensamblado:  Microsoft.SharePoint.Linq (en Microsoft.SharePoint.Linq.dll)

Sintaxis

'Declaración
Public Property ChangeConflicts As ChangeConflictCollection
    Get
    Friend Set
'Uso
Dim instance As DataContext
Dim value As ChangeConflictCollection

value = instance.ChangeConflicts
public ChangeConflictCollection ChangeConflicts { get; internal set; }

Valor de propiedad

Tipo: Microsoft.SharePoint.Linq.ChangeConflictCollection
ChangeConflictCollection cada uno de cuyos miembros representa una discrepancia.

Comentarios

Al menos un miembro de la propiedad también representa un conflicto de concurrencia que se detectó cuando se llamó a SubmitChanges() por última vez. ChangeConflicts no se llena a menos que haya al menos un conflicto de concurrencia: una discrepancia entre el valor actual de la base de datos del campo y el valor que tenía cuando el último obtenido por el proceso actual. Si se encuentra un conflicto, SubmitChanges() también rellena ChangeConflicts con objetos que representan cualquier discrepancia entre el valor actual del cliente y el valor actual de la base de datos.

Normalmente, el código detectará un ChangeConflictException y resolver las discrepancias en el ChangeConflicts en el bloque de catch (Catch en Visual Basic).

Ejemplos

El siguiente es un ejemplo de cómo se utiliza la propiedad ChangeConflicts en un bloque de catch .

foreach (TeamMember teamMember in teamSite.TeamMembers)
{
    teamMember.TopTask = "Fiscal Planning";
}

try 
{
    teamSite.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException e) 
{
    foreach (ObjectChangeConflict changedListItem in teamSite.ChangeConflicts)
    {
        // If another user has changed properties of a non-manager,
        // leave that other user’s changes, except for the TopTask field.
        if (((TeamMember)changedListItem.Object).IsManager = false)
        {        
             foreach (MemberChangeConflict changedField in changedListItem.MemberConflicts)
            {
                if (changedField.Member.Name == "TopTask")
                {
                    changedField.Resolve(RefreshMode.KeepCurrentValues);
                }
                else
                {
                    changedField.Resolve(RefreshMode.OverwriteCurrentValues);
                }
            }
        }
        // But if another user has changed properties of a manager, let this
        // process’s changes override the other user’s changes.
        else
        {
            changedListItem.Resolve(RefreshMode.KeepCurrentValues);
        }    
    }

    teamSite.SubmitChanges();
} // end catch
For Each teamMember As TeamMember In teamSite.TeamMembers
    teamMember.TopTask = "Fiscal Planning"
Next teamMember

Try
    teamSite.SubmitChanges(ConflictMode.ContinueOnConflict)
Catch e As ChangeConflictException
    For Each changedListItem As ObjectChangeConflict In teamSite. ChangeConflicts
        ' If another user has changed properties of a non-manager,
        ' leave that other user’s changes, except for the TopTask field.
        If Not (CType(changedListItem.Object, TeamMember)).IsManager Then
             For Each changedField As MemberChangeConflict In changedListItem.MemberConflicts
                If changedField.Member.Name = "TopTask" Then
                    changedField.Resolve(RefreshMode.KeepCurrentValues)
                Else
                    changedField.Resolve(RefreshMode.OverwriteCurrentValues)
                End If
             Next changedField
        ' But if another user has changed properties of a manager, let this
        ' process’s changes override the other user’s changes.
        Else
            changedListItem.Resolve(RefreshMode.KeepCurrentValues)
        End If
    Next changedListItem

    teamSite.SubmitChanges()
End Try ' end catch

Vea también

Referencia

clase DataContext

Miembros DataContext

Espacio de nombres Microsoft.SharePoint.Linq