多重身份相互冲突

时间:2014-10-15 12:53:54

标签: orchardcms orchardcms-1.8

我正在使用IdentityPart和“Identifier”为许多不同的内容类型创建导入ID,我可以重新导入相同的内容并让它更新现有记录。然而,对于具有定义自己的标识符的部分的内容类型,例如AutoroutePart创建标识“别名”,因此停止工作,从而完全破坏了使用“标识符”的能力

我在Autoroute的ContentHandler

中跟踪了这段代码
// Register alias as identity
OnGetContentItemMetadata<AutoroutePart>((ctx, part) => {
    if (part.DisplayAlias != null)
    {
        ctx.Metadata.Identity.Add("alias", part.DisplayAlias);
    }
});

如果我删除它并重新编译,“Identifier”会再次开始工作。但我失去了使用“别名”的能力。有没有办法在不干扰添加自己身份的其他部分的情况下将“别名”添加为身份?

1 个答案:

答案 0 :(得分:0)

这是导入期间身份匹配方式的错误。导入文件中的单个标识令牌应足以确保与系统中的现有内容项匹配。行为是需要所有身份令牌的完全匹配。我在changeset https://orchard.codeplex.com/SourceControl/changeset/1540f69a79a843182d19936148b3bbd9c5781374(1.x分支)中修复了它。它应该在Orchard 1.9中提供。