Orchardcms 从命令以编程方式创建Orchard ContentItem
我在模块中编写了以下简单命令。Faq类型有一个带有单个字段的自定义零件和一个BodyPart。运行_cm.Create(item)后,该项分配了一个Id,但我在数据库中找不到它的任何痕迹,它也不会出现在Orchard的“内容”选项卡中。为什么该项获得Id但在数据库中找不到?在它出现在“内容”选项卡中之前,是否需要驱动程序、视图和位置信息Orchardcms 从命令以编程方式创建Orchard ContentItem,orchardcms,Orchardcms,我在模块中编写了以下简单命令。Faq类型有一个带有单个字段的自定义零件和一个BodyPart。运行_cm.Create(item)后,该项分配了一个Id,但我在数据库中找不到它的任何痕迹,它也不会出现在Orchard的“内容”选项卡中。为什么该项获得Id但在数据库中找不到?在它出现在“内容”选项卡中之前,是否需要驱动程序、视图和位置信息 public class ApiCommands : DefaultOrchardCommandHandler { private readonly I
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类ApiCommands:DefaultOrchardCommandHandler
{
私有只读IContentManager _cm;
公共ApiCommands(IContentManager cm)
{
_厘米=厘米;
}
[命令名(“api种子”)]
公开无效种子()
{
风险值项目=_cm.新增(“常见问题”);
item.As().Question=“为什么天空是蓝色的?”;
item.As().Text=“闭嘴做作业。”;
_cm.创建(项目);
}
}
我的自定义部件没有驱动程序这是处理程序:
public FaqHandler(IRepository<FaqPartRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
公共FAQ处理程序(IRepository存储库)
{
Filters.Add(StorageFilter.For(repository));
}
原来我的类型没有附加公共部分。在附加一个并设置部件的Owner属性后,我可以保存它。请提供处理程序的完整代码。修改问题以包含整个处理程序