从Command以编程方式创建Orchard ContentItem

时间:2012-07-03 21:29:18

标签: orchardcms

我在我的模块中编写了以下简单命令。 Faq类型有一个带有单个字段的自定义部件和一个BodyPart。运行_cm.Create(item)后,该项目已分配了Id,但我在数据库中找不到它的任何跟踪,并且它没有出现在Orchard的内容选项卡中。为什么该项目获得Id但在数据库中找不到?在内容标签中显示之前是否需要驱动程序,视图和展示位置信息?

public class ApiCommands : DefaultOrchardCommandHandler
{
    private readonly IContentManager _cm;

    public ApiCommands(IContentManager cm)
    {
        _cm = cm;
    }

    [CommandName("api seed")]
    public void Seed()
    {
        var item = _cm.New("Faq");
        item.As<FaqPart>().Question = "Why is the sky blue?";
        item.As<BodyPart>().Text = "Shut up and do your homework.";

        _cm.Create(item);
    }
}

我的自定义部件没有驱动程序,这是处理程序:

public FaqHandler(IRepository<FaqPartRecord> repository)
{
    Filters.Add(StorageFilter.For(repository));
}

1 个答案:

答案 0 :(得分:0)

事实证明我的类型没有附加CommonPart。在我附加一个并设置部件的所有者属性后,我能够保存它。