我正在使用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”会再次开始工作。但我失去了使用“别名”的能力。有没有办法在不干扰添加自己身份的其他部分的情况下将“别名”添加为身份?
答案 0 :(得分:0)
这是导入期间身份匹配方式的错误。导入文件中的单个标识令牌应足以确保与系统中的现有内容项匹配。行为是需要所有身份令牌的完全匹配。我在changeset https://orchard.codeplex.com/SourceControl/changeset/1540f69a79a843182d19936148b3bbd9c5781374(1.x分支)中修复了它。它应该在Orchard 1.9中提供。