问题描述
使用 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 引用,删除旧主键,并将主键更改为临时列。有点讨厌,但完成了工作。