From 03f8f3ff3c737f980e86b9ae1cf672510fb447f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Sun, 26 Jul 2026 15:58:02 +0200 Subject: [PATCH] Remove the Enumerable.Contains() workaround from the Entity Framework Core stores --- .../Stores/OpenIddictEntityFrameworkCoreResourceStore.cs | 9 ++++----- .../Stores/OpenIddictEntityFrameworkCoreScopeStore.cs | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreResourceStore.cs b/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreResourceStore.cs index 2ee07702..cc34c918 100644 --- a/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreResourceStore.cs +++ b/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreResourceStore.cs @@ -174,11 +174,10 @@ public class OpenIddictEntityFrameworkCoreResourceStore< { var context = await Context.GetDbContextAsync(cancellationToken); - // Note: Enumerable.Contains() is deliberately used without the extension method syntax to ensure - // ImmutableArray.Contains() (which is not fully supported by Entity Framework Core) is not used instead. - await foreach (var resource in (from resource in context.Set().AsTracking() - where Enumerable.Contains(names, resource.Name) - select resource).AsAsyncEnumerable().WithCancellation(cancellationToken)) + await foreach (var resource in ( + from resource in context.Set().AsTracking() + where names.Contains(resource.Name!) + select resource).AsAsyncEnumerable().WithCancellation(cancellationToken)) { yield return resource; } diff --git a/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreScopeStore.cs b/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreScopeStore.cs index 68b6e99b..d2dab74c 100644 --- a/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreScopeStore.cs +++ b/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreScopeStore.cs @@ -174,11 +174,10 @@ public class OpenIddictEntityFrameworkCoreScopeStore< { var context = await Context.GetDbContextAsync(cancellationToken); - // Note: Enumerable.Contains() is deliberately used without the extension method syntax to ensure - // ImmutableArray.Contains() (which is not fully supported by Entity Framework Core) is not used instead. - await foreach (var scope in (from scope in context.Set().AsTracking() - where Enumerable.Contains(names, scope.Name) - select scope).AsAsyncEnumerable().WithCancellation(cancellationToken)) + await foreach (var scope in ( + from scope in context.Set().AsTracking() + where names.Contains(scope.Name!) + select scope).AsAsyncEnumerable().WithCancellation(cancellationToken)) { yield return scope; }