Как узнать старый идентификатор элемента в корзине?
-
09-12-2019 - |
Вопрос
Мне нужно знать старый идентификатор элемента в корзине или есть какой-либо способ сохранить его идентификатор в этом элементе перед удалением.Когда элемент удаляется, в корзине создается новый SPRecycleBinItem.И единственная сохраненная информация о старом элементе - это DirName.Но мне нужно знать больше информации.
Решение
Я решил эту проблему.В SPRecycleBinItem есть такое свойство, как LeafName, которое совпадает с более ранним идентификатором в SPListItem для файлов (не для папок).Если бы SPListItem был файлом, то его конечное имя было бы "id" + "_.000" после удаления;Если бы SPListItem был папкой, то ее конечным именем было бы более раннее имя SPListItem.
Другие советы
Ну, вы, конечно, можете сохранить идентификатор элемента в приемнике событий при его удалении и сохранить его там, где вы сможете связать его с элементом в корзине.
Однако, судя по всему, я думаю, что вы используете идентификатор элемента в качестве первичного ключа и теперь столкнулись с проблемой изменения идентификатора.Использование идентификатора элемента в качестве ключа - очень плохая идея, так как он изменится при восстановлении на уровне элемента с помощью инструментов резервного копирования, при его утилизации и в зависимости от того, как вы его используете;с контролем версий.
TL;DR - Да, вы можете использовать обработчик событий для сохранения идентификатора перед повторной обработкой, но использовать идентификатор для чего-либо - действительно плохая идея.