插入 TreeNode 时设置 Kentico 主键值

问题描述

使用 Kentico 13,我正在寻找一种在通过 API 插入 TreeNode 时指定主键值的方法。类似的东西:

var node = TreeNode.New("MyPageType");
node.SetValue("MyPageTypeID",1234);
node.Insert(parentNode);

这个需要在MyPageType表中设置主键所以需要sql身份插入,还需要在CMS_Document表中设置DocumentForeignkeyvalue。

我想到的唯一方法是在节点创建后使用一些自定义 sql,但感觉像是 hack。有没有更好的办法?

这是针对数千个文档的内容迁移任务。内容迁移后,将使用sql 和主键行为。

解决方法

万一有人发现了这一点,我想出的解决方案是使用临时列中的旧主键值运行内容迁移脚本。迁移后,我运行 SQL 以更新对旧主键的 Kentico 引用,删除旧主键,并将主键更改为临时列。有点讨厌,但完成了工作。