From 86b14043cfddba664bc2df9b4de3b86ec08fcee7 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 13 Nov 2024 11:24:11 +0800 Subject: [PATCH] Try to `GetEventsRecords` after `SaveChangesAsync`. This problem was introduced from https://github.com/abpframework/abp/pull/21211 --- .../Volo/Abp/EntityFrameworkCore/AbpDbContext.cs | 6 ------ framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs | 5 +++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs index 07f3e48dbd..e9bf710d7d 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs @@ -630,14 +630,8 @@ public abstract class AbpDbContext : DbContext, IAbpEfCoreDbContext, originalExtraProperties = entry.OriginalValues.GetValue(nameof(IHasExtraProperties.ExtraProperties)); } - //TODO: Reload will throw an exception. Check it when new EF Core versions released. entry.Reload(); - // var storeValues = entry.OriginalValues; - // entry.CurrentValues.SetValues(storeValues); - // entry.OriginalValues.SetValues(storeValues); - // entry.State = EntityState.Unchanged; - if (entry.Entity is IHasExtraProperties) { ObjectHelper.TrySetProperty(entry.Entity.As(), x => x.ExtraProperties, () => originalExtraProperties); diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs index 25135a0b9b..6d809a73bc 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs +++ b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWork.cs @@ -152,7 +152,6 @@ public class UnitOfWork : IUnitOfWork, ITransientDependency await UnitOfWorkEventPublisher.PublishLocalEventsAsync( localEventsToBePublished ); - LocalEvents.AddRange(GetEventsRecords(LocalEventWithPredicates)); } if (DistributedEvents.Any()) @@ -163,10 +162,12 @@ public class UnitOfWork : IUnitOfWork, ITransientDependency await UnitOfWorkEventPublisher.PublishDistributedEventsAsync( distributedEventsToBePublished ); - DistributedEvents.AddRange(GetEventsRecords(DistributedEventWithPredicates)); } await SaveChangesAsync(cancellationToken); + + LocalEvents.AddRange(GetEventsRecords(LocalEventWithPredicates)); + DistributedEvents.AddRange(GetEventsRecords(DistributedEventWithPredicates)); } await CommitTransactionsAsync(cancellationToken);