Partager via


DataContext.SubmitChanges - Méthode (ConflictMode)

Rend persistant dans les contenu de la base de données apportées par l'utilisateur en cours pour une ou plusieurs listes à l'aide du mode de défaillance spécifié ; ou, si un conflit d'accès concurrentiel est trouvé, remplit la propriété ChangeConflicts .

Espace de noms :  Microsoft.SharePoint.Linq
Assembly :  Microsoft.SharePoint.Linq (dans Microsoft.SharePoint.Linq.dll)

Syntaxe

'Déclaration
Public Sub SubmitChanges ( _
    failureMode As ConflictMode _
)
'Utilisation
Dim instance As DataContext
Dim failureMode As ConflictMode

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

Paramètres

Exceptions

Exception Condition
InvalidOperationException

ObjectTrackingEnabled est false

- ou -

Au moins un conflit de ChangeConflicts depuis le dernier appel de SubmitChanges() n'est pas encore résolu.

ChangeConflictException

Il existe un conflit d'accès concurrentiel.

Remarques

La version des éléments de la liste modifiée sera incrémentée. Pour rendre persistantes les modifications sans incrémentation des versions, utilisez SubmitChanges(ConflictMode, Boolean).

Exemples

L'exemple suivant illustre cette surcharge de SubmitChanges() en cours d'utilisation :

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

Voir aussi

Référence

DataContext classe

DataContext - Membres

SubmitChanges - Surcharge

Microsoft.SharePoint.Linq - Espace de noms