MemberChangeConflict.Resolve - Méthode (RefreshMode)
Résout l'écart en utilisant le mode d'actualisation spécifiée.
Espace de noms : Microsoft.SharePoint.Linq
Assembly : Microsoft.SharePoint.Linq (dans Microsoft.SharePoint.Linq.dll)
Syntaxe
'Déclaration
Public Sub Resolve ( _
refreshMode As RefreshMode _
)
'Utilisation
Dim instance As MemberChangeConflict
Dim refreshMode As RefreshMode
instance.Resolve(refreshMode)
public void Resolve(
RefreshMode refreshMode
)
Paramètres
refreshMode
Type : Microsoft.SharePoint.Linq.RefreshModeUne valeur qui spécifie la manière de résoudre le conflit.
Remarques
Resolve(RefreshMode) résout l'écart entre la valeur du client (c'est-à-dire, la valeur du processus en cours sur le serveur Web frontal) et la valeur de base de données par l'affectation d'une valeur est rendue persistante dans la base de données lors du prochain appel de SubmitChangesà la version du client. Le paramètre refreshMode détermine quel principe qu'il utilise pour Déterminez la valeur à assigner.
Exemples
L'exemple suivant montre comment la méthode Resolve(RefreshMode) est utilisée dans un bloc catch qui gère une ChangeConflictException:
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