我需要知道回收站中项目的旧 ID,或者有什么方法可以在删除之前将其 ID 保存在该项目中。删除项目时,会在回收站中创建一个新的 SPRecycleBinItem。唯一保存的有关旧项目的信息是 DirName。但我需要了解更多信息。

有帮助吗?

解决方案

我已经解决了这个问题。SPRecycleBinItem 中有 LeafName 这样的属性,它与之前 SPListItem 中文件(不适用于文件夹)的 Id 相同。如果SPListItem是一个文件,则删除后其LeafName为“id”+“_.000”;如果 SPListItem 是文件夹,则其 LeafName 将是 SPListItem 的较早名称。

其他提示

当然,您可以在删除项目时将其 ID 保存在事件接收器中,并将其存储在可以将其与回收站中的项目相关联的位置。

但是,听上去我认为您正在使用项目 ID 作为主键,并且现在遇到了 ID 更改的问题。使用项目 ID 作为密钥是一个非常糟糕的主意,因为当通过备份工具进行项目级恢复时、回收它时以及根据您使用它的方式,它会发生变化;具有版本控制。

TL;DR - 是的,您可以在回收之前使用事件处理程序来存储 ID,但是将 ID 用于任何事情都是一个非常糟糕的主意。

许可以下: CC-BY-SA归因
scroll top