Architecture “布局类型”;“果园之路”;(什么时候应该使用非contentType而不是contentType?)

Architecture “布局类型”;“果园之路”;(什么时候应该使用非contentType而不是contentType?),architecture,orchardcms,Architecture,Orchardcms,大家好,我们正在深入Orchard,试图弄清楚我们应该如何在Orchard中构建我们的类型时遇到了一些麻烦,我们可以一起解决这个问题,但我们发现弄清楚“果园之路”会是什么节省了我们的时间(比如使用CustomForms模块从我们的部件集快速生成表单:) 最大的问题是“什么时候应该是contentType还是非ContentRecord?” 让我们绊倒的例子是,当我们试图从记录中引用contentType时(我知道我们可以使用ContentManager.Get在中传递contentType项的I

大家好,我们正在深入Orchard,试图弄清楚我们应该如何在Orchard中构建我们的类型时遇到了一些麻烦,我们可以一起解决这个问题,但我们发现弄清楚“果园之路”会是什么节省了我们的时间(比如使用CustomForms模块从我们的部件集快速生成表单:)

最大的问题是“什么时候应该是contentType还是非ContentRecord?”

让我们绊倒的例子是,当我们试图从记录中引用contentType时(我知道我们可以使用ContentManager.Get在中传递contentType项的Id)

这是一张更容易解释我们尝试做什么的图表:

其想法是允许用户注册一个课程的人员列表

我们认为,对于被提名人、课程出勤率、课程实例等,我们可以将它们作为非内容项,因为它们不是直接创建的,注册者背后的控制器会这样做

但是被提名人的字段与CompanyDetailsPart+PersonalDetailsPart+ContactDetailsPart完全相同,因此我们希望重用这些部分+UI来表示被提名人(我们在多个地方使用这些部分)。这是否意味着被提名者必须是一个ContentType才能使用这些部件

我认为,将所有内容表示为ContentItem的障碍在于,我们需要使用ContentPickerPart来表示关系,这是fne,但它让我们提出以下问题:

如果我显示被提名人(其中有包含字符串字段的自定义部分和ContentPickerPart,它会自动显示ContentPickerUI),我们可以防止这种情况发生吗?如果在被提名人视图中,我们希望对PersonalDetailsPart进行验证,但不希望在其他地方使用它呢

我知道这有很多问题要问,我们正在阅读和观看很多精彩的内容,我认为如果有一个谷歌形式的答案,它将帮助其他人很快了解如何在果园中布置东西