diff --git a/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkHelpers.cs b/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkHelpers.cs index 8c95be2b..8829a9ea 100644 --- a/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkHelpers.cs +++ b/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkHelpers.cs @@ -74,9 +74,9 @@ namespace System.Data.Entity throw new ArgumentNullException(nameof(source)); } - return ExecuteAsync(cancellationToken); + return ExecuteAsync(source, cancellationToken); - async IAsyncEnumerable ExecuteAsync([EnumeratorCancellation] CancellationToken cancellationToken) + static async IAsyncEnumerable ExecuteAsync(IQueryable source, [EnumeratorCancellation] CancellationToken cancellationToken) { foreach (var element in await source.ToListAsync(cancellationToken)) { diff --git a/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreHelpers.cs b/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreHelpers.cs index fd599f1f..e9a7deb0 100644 --- a/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreHelpers.cs +++ b/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreHelpers.cs @@ -133,9 +133,9 @@ namespace Microsoft.EntityFrameworkCore throw new ArgumentNullException(nameof(source)); } - return ExecuteAsync(cancellationToken); + return ExecuteAsync(source, cancellationToken); - async IAsyncEnumerable ExecuteAsync([EnumeratorCancellation] CancellationToken cancellationToken) + static async IAsyncEnumerable ExecuteAsync(IQueryable source, [EnumeratorCancellation] CancellationToken cancellationToken) { foreach (var element in await source.ToListAsync(cancellationToken)) { diff --git a/src/OpenIddict.MongoDb/OpenIddictMongoDbHelpers.cs b/src/OpenIddict.MongoDb/OpenIddictMongoDbHelpers.cs index 41829988..60d47e14 100644 --- a/src/OpenIddict.MongoDb/OpenIddictMongoDbHelpers.cs +++ b/src/OpenIddict.MongoDb/OpenIddictMongoDbHelpers.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Threading; using JetBrains.Annotations; @@ -31,9 +32,9 @@ namespace MongoDB.Driver throw new ArgumentNullException(nameof(source)); } - return ExecuteAsync(); + return ExecuteAsync(source, cancellationToken); - async IAsyncEnumerable ExecuteAsync() + static async IAsyncEnumerable ExecuteAsync(IAsyncCursorSource source, [EnumeratorCancellation] CancellationToken cancellationToken) { using var cursor = await source.ToCursorAsync(); @@ -61,15 +62,7 @@ namespace MongoDB.Driver throw new ArgumentNullException(nameof(source)); } - return ExecuteAsync(); - - async IAsyncEnumerable ExecuteAsync() - { - await foreach (var element in ((IAsyncCursorSource) source).ToAsyncEnumerable(cancellationToken)) - { - yield return element; - } - } + return ((IAsyncCursorSource) source).ToAsyncEnumerable(cancellationToken); } } }