Orchardcms 如何在Orchard中正确保存导出/导入内容项之间的关系?

Orchardcms 如何在Orchard中正确保存导出/导入内容项之间的关系?,orchardcms,Orchardcms,我已经读过了,有一个特别的方面没有涉及:对导入和导出关系的支持。由于关系是使用主键(自动递增整数)隐式定义的,因此在导出数据以便在另一个环境(如备份/恢复场景)中导入时,这不是一个问题吗?例如,项目的顺序在导入期间应该很重要。此外,导入到新Orchard安装后,内部id值不一定相同(因为它们是自动递增的) 实现支持导入和导出的关系的首选方式是什么?这可以通过使用作为导入/导出api的一部分提供的标识功能来解决。它不是引用一个基本上保证在目标实例上无效的主键值,而是生成一个确定且唯一的id,以支持

我已经读过了,有一个特别的方面没有涉及:对导入和导出关系的支持。由于关系是使用主键(自动递增整数)隐式定义的,因此在导出数据以便在另一个环境(如备份/恢复场景)中导入时,这不是一个问题吗?例如,项目的顺序在导入期间应该很重要。此外,导入到新Orchard安装后,内部id值不一定相同(因为它们是自动递增的)


实现支持导入和导出的关系的首选方式是什么?

这可以通过使用作为导入/导出api的一部分提供的标识功能来解决。它不是引用一个基本上保证在目标实例上无效的主键值,而是生成一个确定且唯一的id,以支持项目的正确传输,包括在关系的情况下。有两个现成的身份提供者。一个使用项目的别名(如果存在),另一个存储GUID(这是标识部分,例如小部件使用)。

听起来不错,但这与文档中概述的表列约定等有什么关系?是否仍然可以将类型为
SomeRelatedRecord
的属性与相应数据库表中的列一起添加到
SomeRecord
,并让Orchard/NHibernate将其视为一种关系?这听起来像是一个完全不同的问题。然后,我无法正确描述我面临的问题。我按照中的指导原则创建关系,但也希望在导入/导出之间保持这种关系。这需要一个完全不同的解决方案吗?现在我们回到讨论导入/导出。nHibernate在进出口中不起作用。导入/导出行为由每个零件驱动程序的导入和导出方法决定。因此,表列约定是什么或关系如何在数据库上实现都无关紧要。只有驱动程序才能决定导入/导出行为。在编写实现关系的部件时,只需利用标识功能将相关项持久化并从xml中检索。你应该看看现有的关系例子。