Orchardcms Orchard ContentPart OnCreating事件

Orchardcms Orchard ContentPart OnCreating事件,orchardcms,Orchardcms,我正在为自定义ContentPart编写自定义ContentHandler。在将新记录插入数据库之前,我试图使用OnCreating lifecycle事件在ContentPart上设置一个值,但该记录似乎是在调用我的事件处理程序之前创建的 public class MyPartHandler: ContentHandler { public MyPartHandler( IClock clock, IRepository<MyPartRecord&

我正在为自定义ContentPart编写自定义ContentHandler。在将新记录插入数据库之前,我试图使用OnCreating lifecycle事件在ContentPart上设置一个值,但该记录似乎是在调用我的事件处理程序之前创建的

public class MyPartHandler: ContentHandler
{
    public MyPartHandler(
        IClock clock,
        IRepository<MyPartRecord> repository)
    {
        this.Filters.Add(StorageFilter.For(repository));

        OnCreating<CustomerPart>((CreateContentContext context, MyPartRecord myPart) =>
        {
            myPart.CreatedUtc = clock.UtcNow;
        });
    }
}
公共类MyPartHandler:ContentHandler
{
公共MyPartHandler(
IClock时钟,
i存储库)
{
this.Filters.Add(StorageFilter.For(repository));
OnCreating((CreateContentContext上下文,MyPartRecord myPart)=>
{
myPart.CreatedUtc=clock.UtcNow;
});
}
}
值得注意的是,除了涉及额外的数据库更新之外,结果是相同的

有几个问题:

  • 我观察到的OnCreating事件发生在零件记录插入数据库之后,是否准确
  • 如果是这样的话,这个事件到底什么时候发生
  • 生命周期事件是否详细记录在任何地方?我在这里看到了它们的列表,但没有真正描述它们发生的时间

  • 您可以使用激活的
    事件。这是内容项生命周期中调用的第一个事件。

    那么,与创建新的内容项/部件相关的事件实际发生在什么时候?寻找生命周期如何实际流动的更多细节。这个问题包含了一个很好的解释: