Como saber o ID antigo do item na lixeira?
-
09-12-2019 - |
Pergunta
Preciso saber o ID antigo do item na lixeira ou existe alguma maneira de salvar seu ID neste item antes de excluí-lo.Quando o item é excluído, um novo SPRecycleBinItem é criado na Lixeira.E a única informação salva sobre o item antigo é DirName.Mas preciso saber mais informações.
Solução
Eu resolvi esse problema.Existe uma propriedade como LeafName em SPRecycleBinItem, que é igual ao Id anterior em SPListItem para arquivos (não para pastas).Se SPListItem fosse um arquivo, então seu LeafName seria "id" + "_.000" após a exclusão;Se SPListItem fosse uma pasta, então seu LeafName seria o nome anterior de SPListItem.
Outras dicas
Bem, é claro que você pode salvar um ID de item em um receptor de evento ao excluí-lo e armazená-lo onde possa relacioná-lo a um item na lixeira.
No entanto, pelo que parece, acho que você está usando um ID de item como chave primária e agora se deparou com o problema de alteração do ID.Usar o ID do item como chave é uma péssima ideia, pois ele mudará ao fazer a restauração no nível do item por meio de ferramentas de backup, ao reciclá-lo e dependendo de como você o usa;com controle de versão.
DR - Sim, você pode usar um manipulador de eventos para armazenar o ID antes da reciclagem, mas usar o ID para qualquer coisa é uma péssima ideia.