diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs
deleted file mode 100644
index 8f9be2318f..0000000000
--- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangeEventHelper.cs
+++ /dev/null
@@ -1,227 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Logging.Abstractions;
-using Microsoft.Extensions.Options;
-using Volo.Abp.DependencyInjection;
-using Volo.Abp.Domain.Entities.Events.Distributed;
-using Volo.Abp.DynamicProxy;
-using Volo.Abp.EventBus;
-using Volo.Abp.EventBus.Distributed;
-using Volo.Abp.EventBus.Local;
-using Volo.Abp.Uow;
-
-namespace Volo.Abp.Domain.Entities.Events;
-
-///
-/// Used to trigger entity change events.
-///
-public class EntityChangeEventHelper : IEntityChangeEventHelper, ITransientDependency
-{
- private const string UnitOfWorkEventRecordEntityPropName = "_Abp_Entity";
-
- public ILogger Logger { get; set; }
- public ILocalEventBus LocalEventBus { get; set; }
- public IDistributedEventBus DistributedEventBus { get; set; }
-
- protected IUnitOfWorkManager UnitOfWorkManager { get; }
- protected IEntityToEtoMapper EntityToEtoMapper { get; }
- protected AbpDistributedEntityEventOptions DistributedEntityEventOptions { get; }
-
- public EntityChangeEventHelper(
- IUnitOfWorkManager unitOfWorkManager,
- IEntityToEtoMapper entityToEtoMapper,
- IOptions distributedEntityEventOptions)
- {
- UnitOfWorkManager = unitOfWorkManager;
- EntityToEtoMapper = entityToEtoMapper;
- DistributedEntityEventOptions = distributedEntityEventOptions.Value;
-
- LocalEventBus = NullLocalEventBus.Instance;
- DistributedEventBus = NullDistributedEventBus.Instance;
- Logger = NullLogger.Instance;
- }
-
- public virtual void PublishEntityCreatingEvent(object entity)
- {
- TriggerEventWithEntity(
- LocalEventBus,
-#pragma warning disable 618
- typeof(EntityCreatingEventData<>),
-#pragma warning restore 618
- entity,
- entity
- );
- }
-
- public virtual void PublishEntityCreatedEvent(object entity)
- {
- TriggerEventWithEntity(
- LocalEventBus,
- typeof(EntityCreatedEventData<>),
- entity,
- entity
- );
-
- if (ShouldPublishDistributedEventForEntity(entity))
- {
- var eto = EntityToEtoMapper.Map(entity);
- if (eto != null)
- {
- TriggerEventWithEntity(
- DistributedEventBus,
- typeof(EntityCreatedEto<>),
- eto,
- entity
- );
- }
- }
- }
-
- private bool ShouldPublishDistributedEventForEntity(object entity)
- {
- return DistributedEntityEventOptions
- .AutoEventSelectors
- .IsMatch(
- ProxyHelper
- .UnProxy(entity)
- .GetType()
- );
- }
-
- public virtual void PublishEntityUpdatingEvent(object entity)
- {
- TriggerEventWithEntity(
- LocalEventBus,
-#pragma warning disable 618
- typeof(EntityUpdatingEventData<>),
-#pragma warning restore 618
- entity,
- entity
- );
- }
-
- public virtual void PublishEntityUpdatedEvent(object entity)
- {
- TriggerEventWithEntity(
- LocalEventBus,
- typeof(EntityUpdatedEventData<>),
- entity,
- entity
- );
-
- if (ShouldPublishDistributedEventForEntity(entity))
- {
- var eto = EntityToEtoMapper.Map(entity);
- if (eto != null)
- {
- TriggerEventWithEntity(
- DistributedEventBus,
- typeof(EntityUpdatedEto<>),
- eto,
- entity
- );
- }
- }
- }
-
- public virtual void PublishEntityDeletingEvent(object entity)
- {
- TriggerEventWithEntity(
- LocalEventBus,
-#pragma warning disable 618
- typeof(EntityDeletingEventData<>),
-#pragma warning restore 618
- entity,
- entity
- );
- }
-
- public virtual void PublishEntityDeletedEvent(object entity)
- {
- TriggerEventWithEntity(
- LocalEventBus,
- typeof(EntityDeletedEventData<>),
- entity,
- entity
- );
-
- if (ShouldPublishDistributedEventForEntity(entity))
- {
- var eto = EntityToEtoMapper.Map(entity);
- if (eto != null)
- {
- TriggerEventWithEntity(
- DistributedEventBus,
- typeof(EntityDeletedEto<>),
- eto,
- entity
- );
- }
- }
- }
-
- protected virtual void TriggerEventWithEntity(
- IEventBus eventPublisher,
- Type genericEventType,
- object entityOrEto,
- object originalEntity)
- {
- var entityType = ProxyHelper.UnProxy(entityOrEto).GetType();
- var eventType = genericEventType.MakeGenericType(entityType);
- var eventData = Activator.CreateInstance(eventType, entityOrEto);
- var currentUow = UnitOfWorkManager.Current;
-
- if (currentUow == null)
- {
- Logger.LogWarning("UnitOfWorkManager.Current is null! Can not publish the event.");
- return;
- }
-
- var eventRecord = new UnitOfWorkEventRecord(eventType, eventData, EventOrderGenerator.GetNext())
- {
- Properties =
- {
- { UnitOfWorkEventRecordEntityPropName, originalEntity },
- }
- };
-
- /* We are trying to eliminate same events for the same entity.
- * In this way, for example, we don't trigger update event for an entity multiple times
- * even if it is updated multiple times in the current UOW.
- */
-
- if (eventPublisher == DistributedEventBus)
- {
- currentUow.AddOrReplaceDistributedEvent(
- eventRecord,
- otherRecord => IsSameEntityEventRecord(eventRecord, otherRecord)
- );
- }
- else
- {
- currentUow.AddOrReplaceLocalEvent(
- eventRecord,
- otherRecord => IsSameEntityEventRecord(eventRecord, otherRecord)
- );
- }
- }
-
- public bool IsSameEntityEventRecord(UnitOfWorkEventRecord record1, UnitOfWorkEventRecord record2)
- {
- if (record1.EventType != record2.EventType)
- {
- return false;
- }
-
- var record1OriginalEntity = record1.Properties.GetOrDefault(UnitOfWorkEventRecordEntityPropName) as IEntity;
- var record2OriginalEntity = record2.Properties.GetOrDefault(UnitOfWorkEventRecordEntityPropName) as IEntity;
-
- if (record1OriginalEntity == null || record2OriginalEntity == null)
- {
- return false;
- }
-
- return EntityHelper.EntityEquals(record1OriginalEntity, record2OriginalEntity);
- }
-}
diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangingEventData.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangingEventData.cs
deleted file mode 100644
index ae24163966..0000000000
--- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityChangingEventData.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System;
-
-namespace Volo.Abp.Domain.Entities.Events;
-
-///
-/// Used to pass data for an event when an entity () is being changed (creating, updating or deleting).
-/// See , and classes.
-///
-/// Entity type
-[Serializable]
-[Obsolete("This event is no longer needed and identical to EntityChangedEventData. Please use EntityChangedEventData instead.")]
-public class EntityChangingEventData : EntityEventData
-{
- ///
- /// Constructor.
- ///
- /// Changing entity in this event
- public EntityChangingEventData(TEntity entity)
- : base(entity)
- {
-
- }
-}
diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityCreatingEventData.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityCreatingEventData.cs
deleted file mode 100644
index 914c8ca7c7..0000000000
--- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityCreatingEventData.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-
-namespace Volo.Abp.Domain.Entities.Events;
-
-///
-/// This type of event is used to notify just before creation of an Entity.
-///
-/// Entity type
-[Serializable]
-[Obsolete("This event is no longer needed and identical to EntityCreatedEventData. Please use EntityCreatedEventData instead.")]
-public class EntityCreatingEventData : EntityChangingEventData
-{
- ///
- /// Constructor.
- ///
- /// The entity which is being created
- public EntityCreatingEventData(TEntity entity)
- : base(entity)
- {
-
- }
-}
diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityDeletingEventData.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityDeletingEventData.cs
deleted file mode 100644
index af0d1218f7..0000000000
--- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityDeletingEventData.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-
-namespace Volo.Abp.Domain.Entities.Events;
-
-///
-/// This type of event is used to notify just before deletion of an Entity.
-///
-/// Entity type
-[Serializable]
-[Obsolete("This event is no longer needed and identical to EntityDeletedEventData. Please use EntityDeletedEventData instead.")]
-public class EntityDeletingEventData : EntityChangingEventData
-{
- ///
- /// Constructor.
- ///
- /// The entity which is being deleted
- public EntityDeletingEventData(TEntity entity)
- : base(entity)
- {
-
- }
-}
diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityUpdatingEventData.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityUpdatingEventData.cs
deleted file mode 100644
index 703304fefb..0000000000
--- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/Events/EntityUpdatingEventData.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-
-namespace Volo.Abp.Domain.Entities.Events;
-
-///
-/// This type of event is used to notify just before update of an Entity.
-///
-/// Entity type
-[Serializable]
-[Obsolete("This event is no longer needed and identical to EntityUpdatedEventData. Please use EntityUpdatedEventData instead.")]
-public class EntityUpdatingEventData : EntityChangingEventData
-{
- ///
- /// Constructor.
- ///
- /// The entity which is being updated
- public EntityUpdatingEventData(TEntity entity)
- : base(entity)
- {
-
- }
-}
diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/EntityChangeEvents_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/EntityChangeEvents_Tests.cs
index a94c722faf..c6ffa48d37 100644
--- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/EntityChangeEvents_Tests.cs
+++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/EntityChangeEvents_Tests.cs
@@ -38,23 +38,6 @@ public abstract class EntityChangeEvents_Tests : TestAppTestBase
using (var uow = GetRequiredService().Begin())
{
-#pragma warning disable 618
- LocalEventBus.Subscribe>(data =>
-#pragma warning restore 618
- {
- creatingEventTriggered.ShouldBeFalse();
- createdEventTriggered.ShouldBeFalse();
-
- creatingEventTriggered = true;
-
- data.Entity.Name.ShouldBe(personName);
-
- /* Want to change age from 15 to 18 */
- data.Entity.Age.ShouldBe(15);
- data.Entity.Age = 18;
- return Task.CompletedTask;
- });
-
LocalEventBus.Subscribe>(data =>
{
creatingEventTriggered.ShouldBeTrue();
@@ -62,7 +45,7 @@ public abstract class EntityChangeEvents_Tests : TestAppTestBase
createdEventTriggered = true;
- data.Entity.Age.ShouldBe(18);
+ data.Entity.Age.ShouldBe(15);
data.Entity.Name.ShouldBe(personName);
return Task.CompletedTask;