如何在 Orchard 1.9 中以编程方式复制分类术语?

How do I programatically copy Taxonomy Terms in Orchard 1.9?

我正在尝试以编程方式克隆内容项。内置的 clone() 方法还不够,我需要干扰部分过程。我尝试克隆的内容项有一个类别分类字段。我希望我可以按照以下方式做一些事情:

        var sourceContentItemCategory = sourceContentItem.ContentItem.Category as TaxonomyField;
        var targetContentItemCategory = targetContentItem.ContentItem.Category as TaxonomyField;

        targetContentItemCategory.Terms = sourceContentItemCategory.Terms;

但我明白为什么这不起作用。术语是只读的,如果我没记错的话,每个术语也是它自己的内容项,所以我不能只是将这些东西批发到另一个分类中。最简单的方法是什么? TaxonomyService 可以帮助我轻松解决这个问题吗?

我发现这可以在分类服务的帮助下很容易地完成:

var sourceTerms = sourceItem.Item.Category.Terms;
_taxonomyService.UpdateTerms(targetItem, sourceTerms, "[Name of Taxonomy Field = Category]");