Orchardcms Orchard中的null ContentItem

Orchardcms Orchard中的null ContentItem,orchardcms,Orchardcms,第一-免责声明:我知道我不应该这样做,而是使用LazyField,该模型不应该包含逻辑,我将相应地修改我的代码,但我想探索内容项和orchard之间的1-n关系 我正在创建一个系统,用户可以在其中响应所选的工作邀请,因此我有两种内容类型-job(列出所有可用工作)和JobAnswer(包含我的自定义部分并提供指向相应工作内容项的链接): public class JobPart : ContentPart<JobPartRecord> { public Co

第一-免责声明:我知道我不应该这样做,而是使用LazyField,该模型不应该包含逻辑,我将相应地修改我的代码,但我想探索内容项和orchard之间的1-n关系

我正在创建一个系统,用户可以在其中响应所选的工作邀请,因此我有两种内容类型-job(列出所有可用工作)和JobAnswer(包含我的自定义部分并提供指向相应工作内容项的链接):

public class JobPart : ContentPart<JobPartRecord>
{        

    public ContentItem Job
    {            

        get
        {
               if (Record.ContentItemRecord != null)
                {
                    var contentItem = ContentItem.ContentManager.Get(Record.Job.Id);
                    return contentItem;
                }

            var nullItem = ContentItem.ContentManager.Query("Job").List().First();
            return nullItem;

            }
         set { Record.Job = value.Record; }
    }
}  

这是可行的,但我不确定如何处理返回null contentItem的问题,在创建新内容项时,现在它只返回第一个作业内容项,这远远不够理想。

为什么希望它返回null值?那么它不应该是空的吗?这部分是附在作业上还是附在作业答案上?如果对JobAnswer,您应该考虑将附件附加到JobAnswer,但可以将其添加到引用作业内容类型的任何内容类型,从而添加名称。此外,起初我在这里有一个代码,当没有附加内容项时返回null,但这导致零件驱动程序的编辑方法中出现null引用异常,并且没有呈现编辑表单中的适当视图。Job和JobAnswer看起来应该使用列表功能对其进行建模。几乎没有任何案例需要从头开始建立自己的关系。@BertrandLeRoy:谢谢,这是个好主意!我甚至读过你关于这件事的文章,但我忘了。