Orchard ContentPart OnCreating活动

时间:2014-07-16 01:21:03

标签: orchardcms

我正在为自定义ContentPart编写自定义ContentHandler。我试图在将新记录插入数据库之前使用OnCreating生命周期事件在我的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;
        });
    }
}

值得注意的是,除了涉及额外的数据库更新外,结果是相同的。

几个问题:

  1. 我的观察是否准确,在将部件记录插入数据库后发生了OnCreating事件?
  2. 如果是,那么这个事件究竟发生了什么?
  3. 生命周期事件是否记录在任何细节中?我在这里看到了他们的列表http://docs.orchardproject.net/Documentation/Understanding-content-handlers#LifecycleEvents,但没有真正描述它们何时发生。

1 个答案:

答案 0 :(得分:1)

您可以使用OnActivated事件。它是内容项生命周期中调用的第一个事件。