From a9c180461759663bb8ae5cf14d936d9611c417a9 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 26 Feb 2024 17:26:39 +0800 Subject: [PATCH] Set `isolationLevel` to `Serializable ` for `Delete` methods. --- .../Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs | 7 +++++-- .../Applications/AbpOpenIddictApplicationStore.cs | 2 +- .../Authorizations/AbpOpenIddictAuthorizationStore.cs | 4 ++-- .../Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs index 43343da9b8..cfc9878c86 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/AbpOpenIddictStoreOptions.cs @@ -4,10 +4,13 @@ namespace Volo.Abp.OpenIddict; public class AbpOpenIddictStoreOptions { - public IsolationLevel? DefaultIsolationLevel { get; set; } + public IsolationLevel? PruneIsolationLevel { get; set; } + + public IsolationLevel? DeleteIsolationLevel { get; set; } public AbpOpenIddictStoreOptions() { - DefaultIsolationLevel = IsolationLevel.RepeatableRead; + PruneIsolationLevel = IsolationLevel.RepeatableRead; + DeleteIsolationLevel = IsolationLevel.Serializable; } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs index db75bfa665..31c49807e2 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore.cs @@ -61,7 +61,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) { - using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: StoreOptions.Value.DefaultIsolationLevel)) + using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: StoreOptions.Value.PruneIsolationLevel)) { var date = threshold.UtcDateTime; var count = await Repository.PruneAsync(date, cancellationToken: cancellationToken); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs index e8bcfff58d..c8d1f0895c 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs @@ -311,7 +311,7 @@ public class AbpOpenIddictTokenStore : AbpOpenIddictStoreBase PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) { - using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: StoreOptions.Value.DefaultIsolationLevel)) + using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: StoreOptions.Value.PruneIsolationLevel)) { var date = threshold.UtcDateTime; var count = await Repository.PruneAsync(date, cancellationToken: cancellationToken);