Kentico 模块 Parent/Child 关系 - 使用 GUID 而不是 ID 作为 parent 参考

Kentico Module Parent/Child Relationship - Using GUID instead of ID for parent reference

我在 Kentico 中设置了一个自定义模块,然后按照 this 在模块中的 类 之间创建 parent/child 关系。效果很好,我的一切都在使用:

ChildParentID = {% ToInt(UIContext.ParentObjectID) %}

但是,我想使用 parent 的 GUID 作为外键,而不是它们的 ID。我能够为 child 配置信息和信息提供程序 类 以将 parent 的 GUID 指定为外键,但我不知道如何实际获取 parent 检索 child 类 时的 GUID。我希望 Kentico 能提供一个简单的宏,例如:

ChildParentGUID = {% ToInt(UIContext.ParentObjectGUID) %}

但这不存在,我不确定如何在宏中获取 parent 的 GUID。如有任何帮助,我们将不胜感激。

首先,我建议您重新考虑使用 ID 作为 parent 参考。它会自动为您简化其他事情,例如 children 的自动删除、import/export/staging 中的适当包含等

您可能只是没有正确设置这两个 类 的 TypeInfo。

最典型的错误是您在构造函数和 ObjectDependencies 中都将 parent ID 列为 parentIdColumn,这会导致不需要的双重转换。

你可以 post 在这里你的 TypeInfo 配置 类 吗?

您也可以查看我的文章以尝试特定场景如何设置here

如果您坚持为 parent 关系使用 GUID 并且它适合您,您可以使用以下方法获取相关的 parent GUID:

{% UIContext.EditedObjectParent.GUID %}