(ConflictMode) del método DataContext.SubmitChanges

Continúa a los cambios de contenido de la base de datos realizados por el usuario actual a una o más listas utilizando el modo de error especificado; o bien, si se encuentra un conflicto de simultaneidad, rellena la propiedad ChangeConflicts .

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

Sintaxis

'Declaración
Public Sub SubmitChanges ( _
    failureMode As ConflictMode _
)
'Uso
Dim instance As DataContext
Dim failureMode As ConflictMode

instance.SubmitChanges(failureMode)
public void SubmitChanges(
    ConflictMode failureMode
)

Parámetros

Excepciones

Excepción Condición
InvalidOperationException

ObjectTrackingEnabled es false

o bien

Al menos un conflicto de ChangeConflicts desde la última vez que se llamó a SubmitChanges() aún no está resuelto.

ChangeConflictException

Hay un conflicto de concurrencia.

Comentarios

La versión de los elementos de la lista modificada se incrementará. Para conservar los cambios sin versiones posteriores, utilice SubmitChanges(ConflictMode, Boolean).

Ejemplos

En el ejemplo siguiente se muestra esta sobrecarga de SubmitChanges() que se utiliza:

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

Sobrecarga SubmitChanges

Espacio de nombres Microsoft.SharePoint.Linq