问题是,每次创建 ContentItem 时,我都想创建它的本地化版本。本地化版本应该与原始版本相同,但我将进行一些本地化。因此,基本上,每当我创建指定类型的 ContentItem 时,我都会对其进行复制并进行本地化更改,将原始 ContentItem 标记为本地化 ContentItem 的 LocalizationPart.MasterContentItem,然后保留该项目。
最初,当调用 IContentHandler.Created 方法时,我尝试创建原始项目的副本。问题是控制器还没有“尝试更新”项目,所以它缺少数据。我似乎无权访问控制器,以便尝试手动更新项目。
我也等不及控制器 TryUpdate() ContentItem,然后通过其他一些 IContentHandler 方法访问已经更新的 Item,因为在此之前调用了它们。
此外,持久化新创建的 ContentItem 是它在 WorkContext 中完成的最后一件可能的事情,因此在请求线程非常死之前我无法查询数据库。
因此,任何关于如何复制正在创建的 ContentItem 并将副本作为另一个项目保存的见解都会很棒。