Это будет база данных ссылок.Вы можете использовать его перед удалением элемента, чтобы найти источники ссылок:
Sitecore.Globals.LinkDatabase.GetReferrers(item)
Возвращенные объекты ItemLink содержат элемент и поле, на которое ссылается удаляемый элемент.Используйте соответствующий класс Field для удаления ссылки.
Хотя вы можете подумать, что метод RemoveLinks
или RemoveReferences
в LinkDatabase сделает то, что вы ищете, на самом деле он просто удаляет ссылки / ссылки изСама база данных ссылок.
РЕДАКТИРОВАТЬ: Небольшая работа с Reflector приводит к более полному решению ... если вы используете фабрику FieldTypeManager
для получения CustomField
поля, вы можете позвонитьRemoveLink(ItemLink)
в поле.
Field field = item.Fields[brokenField];
CustomField field2 = FieldTypeManager.GetField(field);
item.Editing.BeginEdit();
field2.RemoveLink(itemLink);
item.Editing.EndEdit();
Это непроверенный код, найденный по ссылке Sitecore.Shell.Applications.Links.EditLinksForm