Метод ObjectChangeConflict.Resolve (RefreshMode)
Это обновление устраняет несоответствия путем назначения каждого поля и свойства, для которого имеется несоответствие, значение, которое сохраняется в базе данных при следующем вызове SubmitChanges.
Пространство имен: Microsoft.SharePoint.Linq
Сборка: Microsoft.SharePoint.Linq (в Microsoft.SharePoint.Linq.dll)
Синтаксис
'Декларация
Public Sub Resolve ( _
refreshMode As RefreshMode _
)
'Применение
Dim instance As ObjectChangeConflict
Dim refreshMode As RefreshMode
instance.Resolve(refreshMode)
public void Resolve(
RefreshMode refreshMode
)
Параметры
refreshMode
Тип: Microsoft.SharePoint.Linq.RefreshModeЗначение, определяющее, как разрешить конфликт.
Замечания
Эта перегрузка метода Resolve(RefreshMode) ведет себя точно так, как Resolve(RefreshMode, Boolean) его параметром autoResolveDeletes , равным true.
Примеры
В следующем примере показано, как использовать Resolve(RefreshMode) в блоке catch реагировать на 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