【问题标题】:SharePoint List - Copy SPListItem IDSharePoint 列表 - 复制 SPListItem ID
【发布时间】:2011-03-26 00:27:48
【问题描述】:

我有一个解决方案,将 SharePoint 列表的所有内容复制到一个文件中,然后将该文件的内容复制回 SharePoint(用于备份和舞台/实时环境切换)。

现在我可以复制我需要的所有字段,除了一个:ID

我了解这是一个只读字段,但可以更新其他一些只读字段(我测试过的 Created、Author、Modified、Editor、_ModerationStatus 和 _ModerationComments)

我无法使用 CopyTo 方法,因为我无法访问目标列表。

我希望能够保留 ID,因为我不想破坏出现在我网站内容中的所有 http://siteCollection//Lists/Posts/Post.aspx?ID=... URL。

所以基本上,只要没有从列表中删除任何内容,我现在拥有的系统(它会推送除 ID 之外的所有内容)运行良好。当某些内容被删除(比如 ID = 1)时,第一项变为 ID=2,当我将其推送到空的目标列表中时,它变为 ID=1。

有没有办法强制为 SPListItem 设置一个 ID?这几乎肯定是一个 hack,但也许有人有办法?

谢谢!

【问题讨论】:

    标签: sharepoint wss splistitem


    【解决方案1】:

    好吧,如果您只是想要这样,为什么不创建 ID=1 的虚拟项目然后删除它呢?加入这个逻辑应该不会太难

    【讨论】:

    • 我希望我会避免这样做,但如果这是我唯一的选择,我会这样做。
    • 结束了。谢谢!
    【解决方案2】:

    Content Deployment and Migration API 中可能有一些东西允许您这样做。

    我首先要看的是 Gary Lapointe STSADM extensions,因为他在扩展内置命令(包括 imports that keep original GUID's intact)方面做了一些出色的工作。

    【讨论】:

    • 哇,我不敢相信我从未听说过内容部署和迁移 API。将对其进行调查并进行一些测试。乍一看,不确定它是否能做我想做的事,但它确实提供了很多选择。
    • 感谢您的建议。我设法保留了 GUID、字段等。基本上,除了我想要保留的 ID 之外的所有内容。内容部署和迁移 API 也不允许这样做。我猜你只是不能真正强制数据库中的身份字段......最终创建了虚拟项目来填补 ID 空白。
    • 感谢更新 - 似乎是一个明显的疏忽!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2019-04-16
    • 2014-08-16
    相关资源
    最近更新 更多