当前UoW交易成功完成后,如何发布自定义事件?

问题描述

有一些预定义的事件,如 EntityCreatedEventData,在事务成功提交后发布。

我想在成功提交事务后发布自定义 Event。当前的 API 可以实现吗?

解决方法

是的,这在当前的 API 中是可行的。

来自https://docs.abp.io/en/abp/latest/Unit-Of-Work#other-iunitofwork-properties-methods

  • OnCompleted 方法获取一个回调操作,当工作单元成功完成时调用该操作(您可以确保所有更改都已保存)。
var uow = _unitOfWorkManager.Current;
uow.OnCompleted(() =>
{
    await _eventBus.PublishAsync(new MyCustomEvent());
});

这与用于 EntityCreatedEventData 的 API 相同。