我有一个解决方案,可以将SharePoint列表的所有内容复制到文件中,然后将文件内容复制回SharePoint(用于备份和舞台/实时环境切换)。
现在我可以复制我需要的所有字段,除了一个:ID
我知道它是一个只读字段,但是可以更新其他一些只读字段(Created,Author,Modified,Editor,_ModerationStatus和_ModerationComments来自我测试的内容)
我无法使用CopyTo方法,因为我无法访问目的地列表。
我希望能够保留这些ID,因为我不想破坏遍布我网站内容的所有http://siteCollection//Lists/Posts/Post.aspx?ID= ...网址。
基本上,只要没有从列表中删除任何内容,我现在拥有的系统(除了ID之外的所有内容)都可以正常工作。当某些东西被删除(比如ID = 1)时,第一个项目变为ID = 2,当我在空目的地列表中推送它时,它变为ID = 1.
有没有办法强制SPListItem的ID?它几乎肯定是一个黑客,但也许有人有办法吗?
谢谢!
答案 0 :(得分:3)
好吧,如果你只是想要那个,为什么不创建ID = 1的虚拟物品然后将其删除?添加这个逻辑
应该不会太难答案 1 :(得分:2)
Content Deployment and Migration API中可能包含允许您执行此操作的内容。
我要看的第一件事是Gary Lapointe STSADM extensions因为他在扩展内置命令方面做了一些很棒的工作,包括imports that keep original GUID's intact。