ObjectChangeConflict.Resolve - Méthode (RefreshMode)
Résout les différences en assignant chaque champ et propriété, pour lequel il existe une différence, une valeur est rendue persistante dans la base de données lors du prochain appel de SubmitChanges.
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 ObjectChangeConflict
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
Cette surcharge de la méthode Resolve(RefreshMode) se comporte exactement comme Resolve(RefreshMode, Boolean) avec son paramètre autoResolveDeletes défini à true.
Exemples
L'exemple suivant montre comment les Resolve(RefreshMode) est utilisé dans un bloc de catch pour répondre à 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